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);
针对不同的音频应用场景,需要设置不同的音频回话分类
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);
相关文章推荐
- iOS项目分层
- iOS--资料--开源项目及库
- iOS开发中在iTunes connect中如何创建应用
- iOS开发之git(一)
- iOS中数组遍历的方法及比较
- 设置导航栏透明
- Xcode7中创建静态库
- 实现多个按钮,点选一个其它都取消选中状态的方法
- iOS设置状态栏和导航栏
- iOS倒计时,显示剩余天、时、分、秒
- iOS关于图片点到像素转换之杂谈
- iOS关于图片点到像素转换之杂谈
- iOS关于图片点到像素转换之杂谈
- iOS-项目搭建
- iOS视图控制器之间delegate传值教程
- 不让苹果开发者账号折磨我
- iOS中可能用到的尺寸
- IOS后台 返回 /Date(1445340103367)/ 时间,转换成 2015-10-20 19:21 这种格式
- iOS开发之 Cocoapods MBProgressHUD 安装步骤
- 芒果iOS开发之定位、地理编码