如何使用 Sinch SDK 以编程方式更改通话音量?

问题描述

目前,当我调用并尝试使用 UI 元素更改音量时,我只看到 UI 更改、音量滑块更改,但未看到设备音量。音量是静态的。 对于音量改变,我使用 MPVolumeView

static func adjustCurrentVolume(_ volume: Float) {
        let volumeView = MPVolumeView()
        
        guard let slider = volumeView.subviews.first(where: { $0 is UiSlider }) as? UiSlider else { return }
        
        if volume > maximumVolume {
            currentVolume = maximumVolume
        } else if volume < minimumVolume {
            currentVolume = minimumVolume
        } else {
            currentVolume = volume
        }
        
        dispatchQueue.main.asyncAfter(deadline: .Now() + 0.1) {
            slider.value = currentVolume
        }
    }

对于呼叫:SinchRTC 和 CallKit。 通话中的 AudioSession 属于 PlayAndRecord 类别和 VoiceChat 模式。

解决方法

看MPVolumeview的开发者参考,有没有试过用按钮设置音频输出路径。如果添加按钮,是否可以按预期设置音频输出路由并控制音量?

https://developer.apple.com/documentation/mediaplayer/mpvolumeview