像native phone那样,如果手机连接了耳机、蓝牙音响的时候,系统会显示三个选项:蓝牙,耳机还是手机。
自己的app要怎么写这个feature?
我知道可以用AVAudioSession.但是它貌似直接帮你按priority做好选择,不知道要怎么能够拿到availableOutputs所有选项?
AVAudioSession* myAudioSession = [AVAudioSession sharedInstance];
[myAudioSession setMode:AVAudioSessionModeVoiceChat error:nil];
[myAudioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionAllowBluetooth error:nil];
[myAudioSession setActive:YES error:nil];
如果希望用简单的Objective-C接口进行音频的播放和录制,可以使用AV Foundation框架。
如果要播放和录制带有同步能力的音频、解析音频流、或者进行音频格式转换,可以使用Audio Toolbox框架。
如果要连接和使用音频处理插件,可以使用Audio Unit框架。
如果希望在游戏和其它应用程序中回放位置音频,需要使用OpenAL框架。iPhone OS对OpenAL 1.1的支持是建立在Core Audio基础上的。
如果希望播放iPod库中的歌曲、音频书、或音频播客,需要使用Media Player框架中的iPod媒体库访问接口。
Core Audio框架(和其它音频框架对等)中提供所有Core Audio服务需要使用的数据类型。