objective-c - iOS AVAudioPlayer播放 AVAudioRecorder录音问题
黄舟
黄舟 2017-04-17 17:13:21
[iOS讨论组]

如何保证只有1个Player在播放或者?

目前是,对于1个app内,很多个AVAudioPlayer Play.或者,AVAudioRecorder record .其他可以被打断?不需要我自己弄个全局变量保存正在播放的player.和正在录音的 recorder.
众所周知,我们的app播放可以打断别人的app的声音。

个人感觉打断也分为,直接中断和减弱别人的声音?不知道有没有

题外话,AVAudioPlayer的网络链接直接播放缓存问题

AVAudioPlayer 可以直接通过网址播放,但是这样看不到下载的进度,和最后要不要保留已经下好的。如果重新播放,都将进行重新下载。如网易云音乐就做的很好。

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
阿神

1.一个app内的多个player是可以同时播放的,之前做的音乐播放没处理好就会出现两首歌同时播放的情况o(╯□╰)o
2.放在全局里面的好处就是不需要那么多的初始化和setting设置,会节省很多时间
3.是否打断之类的模式在setCategory方法中的AVAudioSessionCategoryPlayAndRecord等值的设置,不能一一解释,我记得有人是通过一张表格去解释每个选项是否打断(包括本app和与其他app)、是否占用输入、是否占用输出等,现在找不到了,就给一些我用过的设置吧,record时用的是AVAudioSessionCategoryPlayAndRecord,play的时候比较多,AVAudioSessionCategoryPlayback是指即使硬件静音也阻止不了发出声音,还有其他的设置就参照apple doc吧,改动太多,不好解释。类似下代码:

 //recorder设置
 recordSession = AVAudioSession.sharedInstance()
 recordSession.setCategory(AVAudioSessionCategoryPlayAndRecord, error: nil)
 //player设置
 self.player.volume = 1.0
 self.player.delegate = self
 let session = AVAudioSession.sharedInstance()
 session.setCategory(AVAudioSessionCategoryPlayback, error: nil)
 //Player的设置有多种玩法
 /* MixWithOthers is only valid with AVAudioSessionCategoryPlayAndRecord,    AVAudioSessionCategoryPlayback, and  AVAudioSessionCategoryMultiRoute */
static var MixWithOthers: AVAudioSessionCategoryOptions { get }
 /* DuckOthers is only valid with AVAudioSessionCategoryPlayAndRecord, AVAudioSessionCategoryPlayback, and AVAudioSessionCategoryMultiRoute */
static var DuckOthers: AVAudioSessionCategoryOptions { get }
/* AllowBluetooth is only valid with AVAudioSessionCategoryRecord and AVAudioSessionCategoryPlayAndRecord */
static var AllowBluetooth: AVAudioSessionCategoryOptions { get }
/* DefaultToSpeaker is only valid with AVAudioSessionCategoryPlayAndRecord */
static var DefaultToSpeaker: AVAudioSessionCategoryOptions { get }

4.关于云音乐的,体验下来可能也是有些瑕疵的,简单的做法是这样的,先播放流媒体,同时下载,progress实际上就是下载的进度,如果流媒体卡顿,则拿到currentTime用本地播放,如果没有卡顿则一直播放流媒体。可能有更好的方法,抛砖引玉了。

希望能够帮到你

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号