分享

iphone AVAudioRecorder进行录音

 昵称11685791 2013-03-03

iphone AVAudioRecorder进行录音

这些天一直在纠结这个问题:在后台有音乐播放时,我用AVAudioRecorder进行录音,后台音乐被无情的停止了,直到最近才解决!解决方法如下:
首先,在开始录音之前,设置
[[AVAudioSession sharedInstance] setActive:YES error:nil];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
然后在录音结束后,既就是在它的回调函数
- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)aRecorder successfully:(BOOL)flag
里加上:[[AVAudioSession sharedInstance] setActive:NO error:nil]; 即可。
(用AVAudioPlayer来播放音乐也同样处理)
AVAudioSession的Active属性,既就是设置你的音频会话的启动与关闭
在你的录音结束后,一定要关闭AVAudioSession,后台音乐才会自己启动的。(网上的好多例子都只是启动它,但是并没有关闭,所以导致了AVAudioSession一直是激活状态,堵塞了后台音乐的正常播放)
AVAudioSession的Category属性是设置其类别,它有一下几种类别:
获取输入硬 件 获取输出硬件 与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>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多