录制时振动 iPhone

jam*_*rom 5 iphone audio cocoa-touch objective-c

我正在尝试让我的 iPhone 在录音时振动。

我试过这个:

UInt32 category = kAudioSessionCategory_PlayAndRecord; 
status |= AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category);
UInt32 allowMixing = true;
status |= AudioSessionSetProperty (
      kAudioSessionProperty_OverrideCategoryMixWithOthers,  // 1
      sizeof (allowMixing),                                 // 2
      &allowMixing                                          // 3
       );
status |= AudioSessionSetProperty(
      kAudioSessionProperty_OtherMixableAudioShouldDuck, // 1
      sizeof (allowMixing),        // 2
      &allowMixing          // 3
       );
Run Code Online (Sandbox Code Playgroud)

正如这里所建议的。然后稍后通过调用振动设备

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
Run Code Online (Sandbox Code Playgroud)

但它不起作用。但它不会振动。它记录良好,如果我在停止记录之前调用振动时刻,它会在停止后振动。

显然这是一个错误,有人知道解决方法吗?

Log*_*ase 7

最后!从 iOS 13 开始,AVAudioSession 有一个新属性

        let _ = try? AVAudioSession.sharedInstance().setCategory(.playAndRecord)
        if #available(iOS 13.0, *) {
            let _ = try? AVAudioSession.sharedInstance().setAllowHapticsAndSystemSoundsDuringRecording(true)
        }
Run Code Online (Sandbox Code Playgroud)