mediaEngine 为 NULL

Demo工程:Agora-client-side-AV-capturing-for-streaming-Android
audio_video_preprocessing_plugin_jni.cpp文件
Java_io_agora_ex_AudioVideoPreProcessing_doRegisterPreProcessing方法

mediaEngine 为 NULL,导致sendYUVData取不到数据,麻烦看一下,谢谢

JNIEXPORT void JNICALL Java_io_agora_ex_AudioVideoPreProcessing_doRegisterPreProcessing
  (JNIEnv *env, jobject obj)
{
    if (!rtcEngine)
        return;

    agora::util::AutoPtr<agora::media::IMediaEngine> mediaEngine;
    mediaEngine.queryInterface(rtcEngine, agora::AGORA_IID_MEDIA_ENGINE);
    if (mediaEngine) {
        mediaEngine->registerVideoFrameObserver(&s_videoFrameObserver);
        mediaEngine->registerAudioFrameObserver(&s_audioFrameObserver);
    }
...
}

Demo地址

debug 调试看下 mediaEngine 为什么没有被赋予值?或者是哪里给它传了空

断点看了是NULL,但不太清楚是什么地方给他赋值了,正想请教这个问题呢
需要手动赋值吗?

稍等,我确认下

辛苦:pray:

是指 demo 里调用了 mediaEngine.queryInterface(rtcEngine, agora::AGORA_IID_MEDIA_ENGINE); 之后,mediaEngine 为 null 对吗?请检查一下导入的 .h 头文件和 so 是不是同一个版本的 sdk?

image

image


是按照这个步骤来的

dependencies {
    ...
    implementation 'io.agora.rtc:full-sdk:3.0.0'
}

这么填看看

mRtcEngine.enableAudioVolumeIndication(int, int, boolean)

升到3.0.0了
第三个参数填什么呢

升来以后好了不,这个boolean里就true或者false

  • true : 开启本地人声检测功能。开启后, groupAudioVolumeIndication 回调的 vad 参数会报告是否在本地检测到人声。
  • false :(默认)关闭本地人声检测功能。除引擎自动进行本地人声检测的场景外, groupAudioVolumeIndication 回调的 vad 参数不会报告是否在本地检测到人声。

可以的,辛苦了