码迷,mamicode.com
首页 > 移动开发 > 详细

AVAudioSessionPortOverrideSpeaker 和 AVAudioSessionCategoryOptionDefaultToSpeaker区别

时间:2015-02-11 16:50:17      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:ios   麦克风   听筒   耳机   播放   

本文部分翻译了官方对这两个属性的描述。链接如下,此外加入个人的使用体会

https://developer.apple.com/library/ios/qa/qa1754/_index.html


问题的起源,在iOS中,播放声音时,输出到扬声器的需求。两个属性设置的区别

The difference is that setting the AVAudioSessionPortOverride by calling overrideOutputAudioPort: is more transient than using the category option AVAudioSessionCategoryOptionDefaultToSpeaker.

通过overrideOutputAudioPort这个方法设置,属性AVAudioSessionPortOverride, 比使用AVAudioSessionCategoryOptionDefaultToSpeaker这个属性更短暂

e.g

方法1

[session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error];

方法2

[session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:&error];


方法1,设置之后,如果此时插入耳机,在拔掉。播放的声音会从听筒输出,而不是回到扬声器

方法2. 设置之后,始终输出到扬声器,而不是其他接收器,如果没有耳机。(简要的说,就是如果有个蓝牙音箱,哪怕接上都不会有声音输出到蓝牙音响,插上耳机,则会有声音输出到耳机。)

这里有个很重要的地方。这两个属性都只被用于。AVAudioSessionCategoryPlayAndRecord

AVAudioSessionPortOverrideSpeaker 和 AVAudioSessionCategoryOptionDefaultToSpeaker区别

标签:ios   麦克风   听筒   耳机   播放   

原文地址:http://blog.csdn.net/vieri_ch/article/details/43733375

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!