cpp只拿数据不放到设备

cpp只拿数据不放到设备

请问你们具体的业务场景和需求是什么?没太明白你的意思,是要获取原始数据吗?我们有提供音视频原始数据接口:https://docs.agora.io/cn/Video/rawdata_android?platform=Android

我先setExternalAudioSink(true);
然后pullAudioFrame(); 这个返回-1

pullPlaybackAudioFrame

我用的是c++,我是c++小白,我想获取远端音频数据,不让这些数据直接输出到音频设备,我软件会处理

那你通过上面文档链接里的裸数据接口 onPlaybackAudioFrameBeforeMixing 获取指定远端用户的音频数据就好了呀,然后自己处理完毕后再塞回给 SDK(可选)。

我使用setExternalAudioSink这个函数,还是会在设备上听到声音

这又不是关掉声音的方法?
你想不听到声音,mute 不就行了?没懂你的意思

拿到远端用户的音频数据但是不播放,

1、调用上面给你的裸数据接口拿本地音频流原始数据;
2、接受端调用 muteRemoteAudioStream 方法,停止接收远端音频流。

如果你不想做音频自渲染,请不要再纠结于 “我使用setExternalAudioSink这个函数,还是会在设备上听到声音” 这种问题

并没有纠结setExternalAudioSink
但是不能使用 muteRemoteAudioStream 来停止接收
onPlaybackAudioFrameBeforeMixing 这个函数return false

  • true: AudioFrame 中 buffer 数据有效,数据会被发送;
  • false: AudioFrame 中 buffer 数据无效,数据会被舍弃。

那你拿到这个数据是为了做什么?有什么对应的业务场景?

无法实现。

并看不出 你的这个需求 和导播的联系