转自 http://www.devdiv.com/home.php?mod=space&uid=66974&do=blog&id=6472
这些天一直在纠结这个问题:在后台有音乐播放时,我用AVAudioRecorder进行录音,后台音乐被无情的停止了,直到最近才解决!解决方法如下:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
然后在录音结束后,既就是在它的回调函数
- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)aRecorder successfully:(BOOL)flag
里加上:[[AVAudioSession sharedInstance] setActive:NO error:nil]; 即可。
(用AVAudioPlayer来播放音乐也同样处理)
获取输入硬 件 获取输出硬件 与IPOD混合 遵从振铃/静音
AVAudioSessionCategoryAmbient 否 是 是 是
AVAudioSessionCategorySoloAmbient 否 是 否 是
AVAudioSessionCategoryPlayback 否 是 否 否
AVAudioSessionCategoryRecord 是 否 否 否
AVAudioSessionCategoryPlayAndRecord 是 是 否 否
如果你想让你的音乐在程序退出后继续在后台播放,
可以这样设置:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
再在你工程的plist里加上
在info.plist里面添加
<key>Required background modes</key>
<array>
<string>App plays audio</string>
</array>
即可。