核心音频:使用扬声器时,是否可以连接到内部扬声器-AVAudioSessionPortBuiltInReceiver(而不是扬声器)
根据文档,没有关于“AVAudioSessionPortBuiltInReceiver”的路由或甚至获取端口详细信息的文档。(注意:请再次阅读,这不是关于此端口的核心音频:使用扬声器时,是否可以连接到内部扬声器-AVAudioSessionPortBuiltInReceiver(而不是扬声器),ios,swift,core-audio,avaudiosession,Ios,Swift,Core Audio,Avaudiosession,根据文档,没有关于“AVAudioSessionPortBuiltInReceiver”的路由或甚至获取端口详细信息的文档。(注意:请再次阅读,这不是关于此端口的AVAudioSessionPortBuiltInSpeaker) 正如我发现的那样,只有对 public enum AVAudioSessionPortOverride : UInt { case None case Speaker } 问题是,是否有可能通过以下方式播放音频: public let
AVAudioSessionPortBuiltInSpeaker
)
正如我发现的那样,只有对
public enum AVAudioSessionPortOverride : UInt {
case None
case Speaker
}
问题是,是否有可能通过以下方式播放音频:
public let AVAudioSessionPortBuiltInReceiver: String /* The speaker you hold to your ear when on a phone call */
编辑:
使用
MPVolumeView
class(RouteButton)列出了AVAudioSessionPortBuiltInReceiver的(路由到)可能,是否可以实现同样的效果?如果您将音频会话配置为播放和录制(并关闭与其他人的混音),iPhone上的默认路由将变为通过较小的耳朵扬声器播放音频(不是底部声音较大的扬声器),或者如果用户将耳机插入,请拔出插入式耳机。苹果将其称为“接收器”(即顶部耳机)和扬声器
要在这两者之间切换,请执行以下操作:
final private func changed(overrideNone: Bool) {
let audioSession = AVAudioSession.sharedInstance()
var override : AVAudioSessionPortOverride = .none
if overrideNone{
color = UIColor.red
override = .none
}
else{
color = UIColor.yellow
override = .speaker
}
self.view.backgroundColor = color
do {
try audioSession.overrideOutputAudioPort(override)
} catch _ {
}
}
如果您使用false呼叫,您将通过
覆盖=.扬声器
所以扬声器较低。
PS根据2017年6月的型号,它不适用于iPad
苹果表示:
音频端口内置接收器(耳机)
输出到一个扬声器的信号,该扬声器要放在耳朵附近。
..
通常,此扬声器仅在iPhone设备上可用
(颜色用于调试…感谢您的回复。我使用了相同的类别,但仍然通过扬声器播放。您知道吗,当耳机插入时,是否有机会获得内置扬声器的端口详细信息。