我已经创建了一个从一个设备到另一个设备的 WebRTC 会话,该设备应该能够控制音乐流的音量,但是 WebRTC 最初是为流式传输 voice_call 而设计的,因此使用 voice_call 通道并且使用呼叫音量控制对于非通话应用。
我试图在 WebRTC 源WebRtcAudioTrack 中将STREAM_VOICE_CALL 更改为 STREAM_MUSIC以使用流音乐音量,但唯一的变化是 android 将其检测为音乐,但音量随通话音量而变化。
我已经创建了一个从一个设备到另一个设备的 WebRTC 会话,该设备应该能够控制音乐流的音量,但是 WebRTC 最初是为流式传输 voice_call 而设计的,因此使用 voice_call 通道并且使用呼叫音量控制对于非通话应用。
我试图在 WebRTC 源WebRtcAudioTrack 中将STREAM_VOICE_CALL 更改为 STREAM_MUSIC以使用流音乐音量,但唯一的变化是 android 将其检测为音乐,但音量随通话音量而变化。
我找到了解决方案。您必须更改 opensls 播放器才能发生这种情况
从这里改变这个
// 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, SL_ANDROID_KEY_STREAM_TYPE,
&stream_type, sizeof(SLint32)),
false);
在这里也这样做