AVAudioSession
AVAudioSession類由AVFoundation框架引入。每個(gè)IOS應(yīng)用都有一個(gè)音頻會(huì)話。這個(gè)會(huì)話可以被AVAudioSession類的sharedInstance類方法訪問(wèn),如下:
在獲得一個(gè)AVAudioSession類的實(shí)例后,你就能通過(guò)調(diào)用音頻會(huì)話對(duì)象的setCategory:error:實(shí)例方法,來(lái)從IOS應(yīng)用可用的不同類別中作出選擇。下面列出了可供使用的音頻會(huì)話類別:
AVAudioSessionCategorySoloAmbient
這個(gè)類別非常像AVAudioSessionCategoryAmbient類別,除了會(huì)停止其他程序的音頻回放,比如iPod程序。當(dāng)設(shè)備被設(shè)置為靜音模式,你的音頻回放將會(huì)停止。
AVAudioSessionCategoryRecord
這會(huì)停止其他應(yīng)用的聲音(比如iPod)并讓你的應(yīng)用也不能初始化音頻回放(比如AVAudioPlayer)。在這種模式下,你只能進(jìn)行錄音。使用這個(gè)類別,調(diào)用AVAudioPlayer的prepareToPlay會(huì)返回YES,但是調(diào)用play方法將返回NO。主UI界面會(huì)照常工作。這時(shí),即使你的設(shè)備屏幕被用戶鎖定了,應(yīng)用的錄音仍會(huì)繼續(xù)。
AVAudioSessionCategoryPlayback
這個(gè)類別會(huì)靜止其他應(yīng)用的音頻回放(比如iPod應(yīng)用的音頻回放)。你可以使用AVAudioPlayer的prepareToPlay和play方法,在你的應(yīng)用中播放聲音。主UI界面會(huì)照常工作。這時(shí),即使屏幕被鎖定或者設(shè)備為靜音模式,音頻回放都會(huì)繼續(xù)。
AVAudioSessionCategoryPlayAndRecord
這個(gè)類別允許你的應(yīng)用中同時(shí)進(jìn)行聲音的播放和錄制。當(dāng)你的聲音錄制或播放開(kāi)始后,其他應(yīng)用的聲音播放將會(huì)停止。主UI界面會(huì)照常工作。這時(shí),即使屏幕被鎖定或者設(shè)備為靜音模式,音頻回放和錄制都會(huì)繼續(xù)。
AVAudioSessionCategoryAudioProcessing
這個(gè)類別用于應(yīng)用中進(jìn)行音頻處理的情形,而不是音頻回放或錄制。設(shè)置了這種模式,你在應(yīng)用中就不能播放和錄制任何聲音。調(diào)用AVAPlayer的prepareToPlay和play方法都將返回NO。其他應(yīng)用的音頻回放,比如iPod,也會(huì)在此模式下停止。
AVAudioSessionCategoryAmbient
這個(gè)類別不會(huì)停止其他應(yīng)用的聲音,相反,它允許你的音頻播放于其他應(yīng)用的聲音之上,比如iPod。你的應(yīng)用的主UI縣城會(huì)工作正常。調(diào)用AVAPlayer的prepareToPlay和play方法都將返回YES。當(dāng)用戶鎖屏?xí)r,你的應(yīng)用將停止所有正在回放的音頻。僅當(dāng)你的應(yīng)用是唯一播放該音頻文件的應(yīng)用時(shí),靜音模式將停止你程序的音頻回放。如果正當(dāng)iPod播放一手歌時(shí),你開(kāi)始播放音頻,將設(shè)備設(shè)為靜音模式并不能停止你的音頻回放。
轉(zhuǎn)載于:https://www.cnblogs.com/xjblog/p/3940642.html
總結(jié)
以上是生活随笔為你收集整理的AVAudioSession的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 原型对象prototype和原型属性[[
- 下一篇: Mysql数据库优化技术之配置篇、索引篇