如何使用 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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...