天天看點

AVAudioSession

avaudiosession *audiosession = [avaudiosession sharedinstance];

複制代碼

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播放一手歌時,你開始播放音頻,将裝置設為靜音模式并不能停止你的音頻回放。

繼續閱讀