iOS 语音类App播放自己的录音完毕后,如何重新继续播放音乐

来源:互联网 发布:linux dhcp命令 编辑:程序博客网 时间:2024/05/18 03:39

 前一篇文章讲述了,iOS平台如何录音,以及如何播放录音,也就是回放录音。那么,如果在你播放你的录音之前,已经有音乐类的App在后台正在播放音乐,这个时候一般的做法是先暂停音乐播放---->播放你自己的录音---->继续播放后台的音乐。

其实,方法也比较简单,就几行代码如下


播放之前 

[[AVAudioSession sharedInstance] setActive:YES error:nil];[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
 然后播放


播放完成之后,正确的代码如下

[[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil];


错误的代码 就是仅仅简单的 
    [[AVAudioSession sharedInstance] setActive:NO error:nil];
上面这个仅仅是对操作系统的AVAudio管理器说:我不用Auduio服务了。但是其他App的Audio服务没有被唤醒,所以就不会自动继续音乐播放。


正确的代码意思是告诉AVAuduio管理器说:我不用Audio服务了,你唤醒其他需要Auduio服务的App吧。

这个官方有一个说明,图片如下



另外,比较完善的做法是 ,你的App在获取AVAudio服务之前,保存原来的AVAudioSession一部分属性,等待你自己的语音播放完毕后再恢复,一般就是缓存一个catogery属性就可以了。

目前官方文档在 这里 ,不知道以后会不会还存在。

0 0