AVAudioSessionPortOverrideSpeaker 和 AVAudioSessionCategoryO

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

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

error:&error];

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

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

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

一路走来,我们无法猜测将是迎接什么样的风景,

AVAudioSessionPortOverrideSpeaker 和 AVAudioSessionCategoryO

相关文章:

你感兴趣的文章:

标签云: