我正在开发一个应用程序,它应该具有以下有关音频的属性:
时,当耳机没有插入
我使用了以下代码。
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *audioSessionError;
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&audioSessionError];
UInt32 mix = 1;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(mix), &mix);
UInt32 route = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(route), &route);
[audioSession setActive:YES error:&audioSessionError];然而,我可以实现1-3,但在4时失败。当耳机插入,音频仍然通过扬声器。然后,我尝试设置kAudioSessionProperty_OverrideCategoryDefaultToSpeaker而不是kAudioSessionProperty_OverrideAudioRoute,但结果是暂停了iPod,而不是混合两种音频。有人能帮我指出一下上面的代码有什么问题吗?
谢谢你的帮助。
发布于 2011-02-02 00:04:39
我想这个:
UInt32 route = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(route), &route);具体意思是使用扬声器。默认操作(插入时使用耳机)应该是:
UInt32 route = kAudioSessionOverrideAudioRoute_None;https://stackoverflow.com/questions/3329345
复制相似问题