问题描述
我已经创建了从一台设备到另一台设备的 WebRTC 会话,该设备应该能够控制音乐流的音量,但 WebRTC 最初设计用于流式传输 voice_call,因此使用的是 voice_call 通道,而使用呼叫音量控制则不是非通话应用的良好行为。
我尝试在 WebRTC 源 WebRtcAudioTrack 中将 STREAM_VOICE_CALL 更改为 STREAM_MUSIC 以使用流音乐音量,但唯一的变化是 android 将其检测为音乐,但音量随通话音量而变化。
解决方法
我找到了解决方案。你必须改变 opensls 播放器才能做到这一点
更改此from here
// corresponds to android.media.AudioManager.STREAM_VOICE_CALL.
SLint32 stream_type = SL_ANDROID_STREAM_VOICE;
RETURN_ON_ERROR(
(*player_config)
->SetConfiguration(player_config,SL_ANDROID_KEY_STREAM_TYPE,&stream_type,sizeof(SLint32)),false);
到这里
// corresponds to android.media.AudioManager.STREAM_MUSIC.
SLint32 stream_type = SL_ANDROID_STREAM_MEDIA;
RETURN_ON_ERROR(
(*player_config)
->SetConfiguration(player_config,false);
这样做here too