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