objective-c - iOS AVAudioPlayer播放 AVAudioRecorder录音问题
黄舟
黄舟 2017-04-17 17:13:21
0
1
1031

如何保证只有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用本地播放,如果沒有卡頓則一直播放串流媒體。可能有更好的方法,拋磚引玉了。

希望能夠幫助你

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板