核心音频:使用扬声器时,是否可以连接到内部扬声器-AVAudioSessionPortBuiltInReceiver(而不是扬声器)

核心音频:使用扬声器时,是否可以连接到内部扬声器-AVAudioSessionPortBuiltInReceiver(而不是扬声器),ios,swift,core-audio,avaudiosession,Ios,Swift,Core Audio,Avaudiosession,根据文档,没有关于“AVAudioSessionPortBuiltInReceiver”的路由或甚至获取端口详细信息的文档。(注意:请再次阅读,这不是关于此端口的AVAudioSessionPortBuiltInSpeaker) 正如我发现的那样,只有对 public enum AVAudioSessionPortOverride : UInt { case None case Speaker } 问题是,是否有可能通过以下方式播放音频: public let

根据文档,没有关于“AVAudioSessionPortBuiltInReceiver”的路由或甚至获取端口详细信息的文档。(注意:请再次阅读,这不是关于此端口的
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设备上可用


(颜色用于调试…

感谢您的回复。我使用了相同的类别,但仍然通过扬声器播放。您知道吗,当耳机插入时,是否有机会获得内置扬声器的端口详细信息。