3

我已经创建了一个从一个设备到另一个设备的 WebRTC 会话,该设备应该能够控制音乐流的音量,但是 WebRTC 最初是为流式传输 voice_call 而设计的,因此使用 voice_call 通道并且使用呼叫音量控制对于非通话应用。

我试图在 WebRTC 源WebRtcAudioTrack 中将STREAM_VOICE_CALL 更改为 STREAM_MUSIC以使用流音乐音量,但唯一的变化是 android 将其检测为音乐,但音量随通话音量而变化。

4

1 回答 1

2

我找到了解决方案。您必须更改 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);

在这里也这样做

于 2021-06-02T07:37:33.900 回答