您的位置:首页 > 移动开发 > IOS开发

iOS音频文件播放切换扬声器

2016-01-12 10:54 597 查看
AVAudioSession是一个单例,无需实例化即可直接使用。AVAudioSession在各种音频环境中起着非常重要的作用

针对不同的音频应用场景,需要设置不同的音频回话分类

AVAudioSession的类别

AvAudioSessionCategoryAmbient或kAudioSessioncategory_AmbientSound 用于非以语音为主的应用,使用这个category的应用会随着静音键和屏幕关闭而静音.并且不会中止其他应用的声音.可以和其他自带应用如iPod,safari等同时播放声音.

AVAudioSessionCategorySoloAmbeient或kAudioSessionCategory_SoloAmbientSound类似于AVAudioSessionCategoryAmbient不同之处在于它会中止其他应用的声音.

AVAudioSessionCategoryPlayback或kAudioSessionCategory_MediaPlayback 用于以语音为主的应用,这个category的应用不会随着静音键和屏幕关闭而静音.

AVAudioSessionCategoryRecord或kAudioSessionCategory_RecordAudio 用于录音的应用,设置category后,除了来电铃声,闹钟或日历提醒之外的其它系统声音都不会播放

kAudioSessionCategory_PlayAndRecord或AVAudioSessionCategoryPlayAndRecord用于既需要播放声音又需要录音的应用.语音聊天应用(如微信).

AVAudioSessionCategoryAudioProcessing或kAudioSessionCategory_AudioProcessing当需要进行离线语音处理时使用category.

注意:并不是一个应用只能使用一个category,程序应该根据实际需求来切换设置不同的category荣:录音的时候需要设置为AVAudioSessionCategoryRecord,当录音结束的时候应根据程序需要更改category为AVAudioSessionCategoryAmbient,AVAudioSessionCategorySoloAmbeient中的一种

设置category

AVAudioSession *audioSession = [AVAudioSession
sharedInstance];

[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord
error:nil];

[audioSession setActive:YES
error:nil];

设置音频播放为扬声器

UInt32 audioRouteOverride = 1;

AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,

sizeof (audioRouteOverride),

&audioRouteOverride);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: