Agora远端音频流处理

需求:获取每个远端用户的音频流,并禁止播放音频。

目前获取远端用户的音频流,使用registerAudioFrameObserver(IAudioFrameObserver),在onPlaybackAudioFrameBeforeMixing里面根据uid分组ByteBuffer(可以存到sdcard文件)。

  1. 获取到远端用户的音频后,不想播放这个音频(比如视频通话中只显示画面不需要声音),只是保存到本地(进行处理后再播放),可以实现吗?用什么方法?

  2. 关于“禁止播放音频”,

    setExternalAudioSink 可以停止本地的音频播放,但是没有onPlaybackAudioFrameBeforeMixing回调;(和文档描述一致)

    setExternalAudioSink(true)时,只能使用 pullPlaybackAudioFrame, 这个方法拉取到的是常规模式下听到的音频合集吗?(不是单一用户的音频)

    pullPlaybackAudioFrame 这个是主动拉取,buffer大小如何设定?间隔如何处理?while循环(buffer满了这个方法会自动返回)?

  3. 如果想直接在onPlaybackAudioFrameBeforeMixing这个回调里改数据,然后再传给SDK,如何操作?

备注(关于第1个问题):

>https://www.rtcdeveloper.cn/cn/community/discussion/34/16979

这个里面提到的“音频自渲染+获取混音前远端用户音频裸数据”的demo目前找不到了。现在有其他方法可以处理吗?(这个应该是很老的方案了)