IMediaEngine IMediaEngine

最近更新时间:2022-09-20 05:17:40

Public 成员函数
virtual~IMediaEngine ()
virtual voidrelease ()=0
virtual intregisterAudioFrameObserver (IAudioFrameObserver *observer)=0
virtual intregisterVideoFrameObserver (IVideoFrameObserver *observer)=0
virtual intregisterVideoRenderFactory (IExternalVideoRenderFactory *factory)=0
virtual intpushAudioFrame (IAudioFrameObserver::AudioFrame *frame)=0
virtual intpullAudioFrame (IAudioFrameObserver::AudioFrame *frame)=0
virtual intsetExternalVideoSource (bool enable, bool useTexture)=0
virtual intpushVideoFrame (ExternalVideoFrame *frame)=0

构造及析构函数说明

~IMediaEngine

virtual ar::media::IMediaEngine::~IMediaEngine ( )

成员枚举类型说明

release

virtual void ar::media::IMediaEngine::release()

registerAudioFrameObserver

virtual int registerAudioFrameObserver(IAudioFrameObserver* observer)

注册语音观测器对象

该方法用于注册语音观测器对象,即注册回调。当需要引擎给出 onRecordAudioFrameonPlaybackAudioFrame 回调时,需要使用该方法注册回调。

参数

参数描述
observer接口对象实例。如果传入 NULL,则取消注册。详见 IAudioFrameObserver

registerVideoFrameObserver

virtual int registerVideoFrameObserver(IVideoFrameObserver* observer)

注册视频观测器对象

你需要在该方法中实现一个 IVideoFrameObserver 类,并根据场景需要,注册该类的回调。 成功注册视频观测器后,SDK 会在捕捉到每个视频帧时,触发你所注册的上述回调。

参数

参数描述
observer接口对象实例。如果传入 NULL,则取消注册。详见 IVideoFrameObserver

registerVideoRenderFactory

virtual int registerVideoRenderFactory(IExternalVideoRenderFactory* factory)

pushAudioFrame

virtual int pushAudioFrame(IAudioFrameObserver::AudioFrame* frame) = 0;

推送外部音频帧

参数

参数描述
frame音频帧指针。详见: AudioFrame

返回值

  • 0:方法调用成功
  • < 0:方法调用失败

pullAudioFrame

virtual int pullAudioFrame(IAudioFrameObserver::AudioFrame* frame)

拉取远端音频数据

使用该方法前,你需要调用 setExternalAudioSink(enabled: true) 方法通知 App 开启并设置外部渲染。 调用该方法后,App会采取主动拉取的方式获取远端已解码和混音后的音频数据,用于音频播放。

参数

参数描述
frame指向 AudioFrame 的指针。

返回值

  • 0:方法调用成功
  • < 0:方法调用失败

注意事项:

  • 使用该方法后,App 会无法从 onPlaybackAudioFrame 回调中获得数据。
  • 该方法和 onPlaybackAudioFrame 回调相比,区别在于:
    • onPlaybackAudioFrame:SDK 通过该回调将音频数据传输给 app。如果 app 处理延时,可能会导致音频播放抖动。 如果 App 处理延时,可能会导致音频播放抖动。
    • pullAudioFrame:App 主动拉取音频数据。通过设置音频数据, SDK 可以调整缓存,帮助 App 处理延时,从而有效避免音频播放抖动。

setExternalVideoSource

virtual int setExternalVideoSource(bool enable, bool useTexture)

配置外部视频源

参数

参数描述
enable是否使用外部视频源:
  • true:使用外部视频源
  • false:(默认)不使用外部视频源
  • useTexture是否使用 Texture 作为输入:
  • true:使用 texture 作为输入
  • false:(默认)不使用 texture 作为输入
  • 返回值

    • 0:方法调用成功
    • < 0:方法调用失败

    pushVideoFrame

    virtual int pushVideoFrame(ExternalVideoFrame *frame)

    使用 ExternalVideoFrame 将视频帧数据传递给 AR SDK

    参数

    参数描述
    frame待传输的视频帧。详见 ExternalVideoFrame

    返回值

    • 0:方法调用成功
    • < 0:方法调用失败

    注意事项:

    • 通信场景下,不支持 Texture 格式的视频帧,只支持非 Texture 格式的视频帧