MPVolumeView Не отображать опцию динамика на iPad - PullRequest
0 голосов
/ 20 декабря 2018

Я использую класс MPVolumeView для переключения между аудиовыходами.В iPhone у вас есть 2 опции при запуске (iPhone и динамик), а в iPad у вас есть только 1 опция (динамик)

Но при подключении наушников на iPad не только опции динамика, но и наушники.

(в iPhone все работает хорошо)

Установить MPVolumeView:

private func setUI(){
    let myVolumeView = MPVolumeView(frame: self.speakerButton.bounds)
    myVolumeView.showsVolumeSlider = false
    myVolumeView.setRouteButtonImage(nil, for: .normal)
    self.speakerButton.addSubview(myVolumeView)
}

Сессия сборки:

        try session.setPreferredSampleRate(Double(DefaultAudioDevice.kSampleRate))
        try session.setPreferredIOBufferDuration(0.01)
        let audioOptions = AVAudioSessionCategoryOptions.allowBluetooth.rawValue
        try session.setCategory(AVAudioSessionCategoryPlayAndRecord, mode: AVAudioSessionModeVoiceChat, options: AVAudioSessionCategoryOptions(rawValue: audioOptions))
        try session.setActive(true)
        try session.overrideOutputAudioPort(AVAudioSessionPortOverride.speaker)

Я пытаюсь: - Добавить AVAudioSessionCategoryOptions.defaultToSpeaker - изменить на AVAudioSessionCategoryPlayAndRecord - удалить session.overrideOutputAudioPort (AVAudioSessionPortOverride.speaker)

Параметр динамика никогда не отображается на iPad.Только на iPhone

enter image description here

1 Ответ

0 голосов
/ 20 декабря 2018

Попробуйте этот код

let airplayButton = MPVolumeView()
airplayButton.frame = CGRect(x: myX, y: myY, width: 40, height: 40)
airplayButton.showsVolumeSlider = false
customPlayerControls.view.addSubview(airplayButton)
...