iPhone SDK:设置音频路由并在静音开关打开时静音音频
Posted
技术标签:
【中文标题】iPhone SDK:设置音频路由并在静音开关打开时静音音频【英文标题】:iPhone SDK: Set audio route and also mute audio when mute switch is turned on 【发布时间】:2010-04-01 09:45:04 【问题描述】:我有一个应用程序,用户可以在其中录制声音并在扬声器或听筒中播放声音。要路由音频,我通过以下方式设置 kAudiosessionProperty_OverrideAudioRoute:
if(loudSpeakerOn)
audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
else
audioRouteOverride = kAudioSessionOverrideAudioRoute_None;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), &audioRouteOverride);
我还应该确保当用户打开/关闭静音/振动开关时,声音应该静音/取消静音。为此,我设置了以下属性
SInt32 ambient = kAudioSessionCategory_AmbientSound;
if (AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof(ambient), &ambient))
NSLog(@"*** Error *** could not set Session property to ambient.");
现在,问题是当我设置 Ambient 属性时,音频路由和音频录制停止工作。
我怎样才能让所有这些一起工作?
谢谢!
【问题讨论】:
【参考方案1】:你搞定了吗?我相信设置音频会话类别环境将不允许录制。如果您需要同时录制和播放音频,请改用 kAudioSessionCategory_PlayAndRecord,否则在需要时在它们之间来回切换。此外,设置类别可能会重新初始化路由,因此您可能需要在设置类别后再次设置。
【讨论】:
以上是关于iPhone SDK:设置音频路由并在静音开关打开时静音音频的主要内容,如果未能解决你的问题,请参考以下文章