ios7 - AVAudioSession 输出选择

标签 ios7 avfoundation core-audio audiounit avaudiosession

如果 iPhone 连接了多个输入和输出附件,我希望用户能够手动选择输入和输出源。我可以通过查询 [[AVAudioSession sharedInstance] availableInputs] 手动选择输入,然后在 iOS 7 中使用 setPreferredInput:error 方法,但我找不到类似的输出。我如何实现这一目标?我正在使用 PlayAndRecord 类别。

最佳答案

Apple 不希望开发人员以编程方式更改输出路径/音量。也许 MPVolumeView 是您的选择。

添加一个 MPVolumeView,然后将其 showsRouteButton 设置为 YES。

The Apple Documentation说,“当有多个音频输出路由可用时,路由按钮默认可见。”

像这样: MPVolumeView example

编辑: 虽然 Apple 不希望开发者以编程方式改变输出路径,但有时我们仍然可以在 iPhone 未连接耳机/耳机时强行改变输出路径:

AVAudioSession* session = [AVAudioSession sharedInstance];
[session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
[session setActive:YES error:nil];

这仅在 iPhone 未连接耳机/耳机时生效。

关于ios7 - AVAudioSession 输出选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29999393/

相关文章:

objective-c - UILabel 触摸点的字符索引

objective-c - 为什么 NSURLSession 不使用我配置的 NSURLCache?

iphone - 在另一个 View 中显示一个 View 的预览

ios - objective-C:为什么我的循环没有终止?

ios - DictionaryLiteral<_,_> 类型的值在强制转换中不符合 'Any'

iphone - Xcode 4.3.1 iOS 5.1 上的 CoreAudio PublicUtility

xamarin.ios - 在 iOS7 的单点触控中设置 UINavigationBar 色调颜色

ios - 检测 AVAsset 中的当前关键帧间隔

objective-c - 如何在 cocoa 中获取音频文件的比特率

iphone - 将 .wav 文件转换为 .mp3