iOS音频

来源:互联网 发布:如何查看mac激活时间 编辑:程序博客网 时间:2024/04/28 20:13
 

AVAudioSession 音频会话类别简介 

标签: AVAudioSessionAVFoundationAVAudioSessionCategosetCategoryerrorprepareToPlay
 447人阅读 评论(0) 收藏 举报
 分类:

目录(?)[+]

AVAudioSession类由AVFoundation框架引入,AVAudioSession是一个单例模式,也就是说,不用开发者自行实例化.每个iOS应用都有一个音频会话。这个会话可以被AVAudioSession类的sharedInstance类方法访问,如下:

    import AVFoundationvar audioSession = AVAudioSession.sharedInstance()

在获得AVAudioSession类的实例后,你就能通过调用音频会话对象的setCategory:error:实例方法,来从IOS应用可用的不同类别中作出选择。下面列出了可供使用的音频会话类别:

AVAudioSessionCategoryAmbient

后台播放类型,会和其它音乐混合的音频类型。这个类别用于音频比较次要的应用,应用的音频会和其他应用的音频实现混音,关闭屏幕或者静音开关打开时音频将静音.

AVAudioSessionCategorySoloAmbient

后台播放类型,其它音乐会停止播放, 默认类别。这个类别非常像AVAudioSessionCategoryAmbient类别,除了会停止其他程序的音频回放。

AVAudioSessionCategoryPlayback

这个类别会静止其他应用的音频回放。你可以使用AVAudioPlayerprepareToPlayplay方法,在你的应用中播放声音。主UI界面会照常工作。这时,即使屏幕被锁定或者设备为静音模式,音频回放都会继续。

AVAudioSessionCategoryRecord

录音时使用。这会停止其他应用的声音并让你的应用也不能初始化音频回放(比如AVAudioPlayer)。在这种模式下,你只能进行录音。使用这个类别,调用AVAudioPlayer的prepareToPlay会返回true,但是调用play方法将返回false。主UI界面会照常工作。这时,即使你的设备屏幕被用户锁定了,应用的录音仍会继续。

AVAudioSessionCategoryPlayAndRecord

录音并需要播放时使用。这个类别允许你的应用中同时进行声音的播放和录制。当你的声音录制或播放开始后,其他应用的声音播放将会停止。主UI界面会照常工作。这时,即使屏幕被锁定或者设备为静音模式,音频回放和录制都会继续。

AVAudioSessionCategoryAudioProcessing

这个类别用于音频处理,比如编码解码时/不播放音频/未录音时使用。设置了这种模式,你在应用中就不能播放和录制任何声音。调用AVAPlayerprepareToPlayplay方法都将返回false。其他应用的音频也会在此模式下停止。

AVAudioSessionCategoryMultiRoute

这个类别可以实现同时可以有多种输出,例如:usb和耳机同时输出,但并非所有输入输出方式均支持.输入方式仅包括:AVAudioSessionPortUSBAudio/AVAudioSessionPortHeadsetMic AVAudioSessionPortBuiltInMic;输出仅包括:AVAudioSessionPortUSBAudio /AVAudioSessionPortLineOut /AVAudioSessionPortHeadphones /AVAudioSessionPortHDMI AVAudioSessionPortBuiltInSpeaker

详细说明见官网文档:Audio Session Categories

本文转载自http://www.swiftmi.com/topic/133.html

0 0
原创粉丝点击