录制时振动iPhone

时间:2009-11-17 15:14:18

标签: iphone objective-c cocoa-touch audio

我正在尝试让我的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
       );

根据建议here。然后通过调用

振动设备
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

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

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

2 个答案:

答案 0 :(得分:3)

我的猜测是在录音过程中特别抑制了振动功能。您可以通过做一些通常会使手机振动的其他东西(例如,在您录制音频的同时发送静音开关的短信)来轻松测试这一点 - 我的赌注是它也不会因此而振动。

This earlier thread confirms my view.

答案 1 :(得分:0)

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

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