看来,这是不可能的发挥警报声播放警报声音(振动)虽然AudioQueue被记录
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
而AudioQueue正用于录制音频。那是对的吗?也许我做错了什么。有没有办法做到这一点,而不是暂停录音?
TIA。
看来,这是不可能的发挥警报声播放警报声音(振动)虽然AudioQueue被记录
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
而AudioQueue正用于录制音频。那是对的吗?也许我做错了什么。有没有办法做到这一点,而不是暂停录音?
TIA。
从阅读苹果的开发者论坛,几位开发者声称这是一个已经提交的bug。如果你将会话类型设置为kAudioSessionCategory_PlayAndRecord,它应该可以工作,但不会。
如果您要引用您指的论坛帖子,我会将此奖励给您。 – 2009-08-15 03:55:50
具体的帖子是: https://devforums.apple.com/message/79080 – justinb 2009-09-04 08:11:16
只是一个疯狂的猜测,但你的音频会话设置为kAudioSessionCategory_PlayAndRecord
?
好的。所以我将此添加到AudioQueue初始化代码中: UInt32 audioCategory = kAudioSessionCategory_PlayAndRecord; AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,sizeof(audioCategory),&audioCategory); 但我仍然有同样的问题,例如playalertsound不会导致设备在录制时震动。任何其他想法? 谢谢。 – 2009-07-27 15:04:03
试试这个:
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
最后两个AudioSessionSetProperty
电话是在3.0 OS新。这些使我能够在录制过程中播放声音以及震动。
我试过什么sehugg建议,但没有运气?你像这样活跃吗?
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error: nil];
UInt32 doSetProperty = 1;
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(doSetProperty), &doSetProperty);
AudioSessionSetProperty (kAudioSessionProperty_OtherMixableAudioShouldDuck, sizeof(doSetProperty), &doSetProperty);
[[AVAudioSession sharedInstance] setActive: YES error: nil];
声音非常安静,因为当您激活VAudioSessionCategoryPlayAndRecord时,SDK通过听筒扬声器发出声音。这大概是为了防止录音中的反馈。在PlayAndRecord模式下,您必须手动覆盖音频路线才能将输出再次发送到扬声器。就像这样:
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute,
sizeof(UInt32), &audioRouteOverride);
我很好奇振动是否会在录音中显示为声音。 – 2009-08-14 18:49:42