objective-c - iOS7 选择音频输出

浏览:29日期:2023-12-19

问题描述

像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];

问题解答

回答1:

如果希望用简单的Objective-C接口进行音频的播放和录制,可以使用AV Foundation框架。

如果要播放和录制带有同步能力的音频、解析音频流、或者进行音频格式转换,可以使用Audio Toolbox框架。

如果要连接和使用音频处理插件,可以使用Audio Unit框架。

如果希望在游戏和其它应用程序中回放位置音频,需要使用OpenAL框架。iPhone OS对OpenAL 1.1的支持是建立在Core Audio基础上的。

如果希望播放iPod库中的歌曲、音频书、或音频播客,需要使用Media Player框架中的iPod媒体库访问接口。

Core Audio框架(和其它音频框架对等)中提供所有Core Audio服务需要使用的数据类型。

相关文章: