本文为您介绍了Linux SDK(C++)的AliRtcEngine接口详情。

目录

基础接口

API 描述 以上版本支持
CreateAliRTCEngine 创建AliRTCEngine实例 1.16
Release 销毁AliRTCEngine实例 1.16
GetEventHandler 获取事件回调句柄 1.16

频道相关接口

API 描述 以上版本支持
JoinChannel 加入频道 1.16
LeaveChannel 离开频道 1.16

发布相关接口

API 描述 以上版本支持
SetVideoProfile 设置视频流推流参数 1.16
GetVideoProfile 获取视频流推流参数 1.16
ConfigLocalCameraPublish 设置是否允许推送视频流(原相机流) 1.16
IsLocalCameraPublishEnabled 查询是否允许推送视频流(原相机流) 1.16
ConfigLocalScreenPublish 设置是否允许推送视频流(原屏幕流) 1.16
IsLocalScreenPublishEnabled 查询是否允许推送视频流(原屏幕流) 1.16
ConfigLocalAudioPublish 设置是否允许推送音频流 1.16
IsLocalAudioPublishEnabled 查询是否允许推送音频流 1.16
ConfigLocalSimulcast 设置是否允许推送次要视频流小流 1.16
IsLocalSimulcastEnabled 查询是否允许推送次要视频流小流 1.16
Publish 手动推送视频和音频流 1.16

录制相关接口

API 描述 以上版本支持
StartRecording 手动开启录制 1.16
StopRecording 手动停止录制 1.16

视频相关接口

API 描述 以上版本支持
SetExternalVideoSource 设置是否启用外部视频输入源 1.16
PushExternalVideoFrame 输入外部视频数据 1.16

音频相关接口

API 描述 以上版本支持
SetExternalAudioSource 设置是否启用外部音频输入推流 1.16
PushExternalAudioFrameRawData 输入外部音频数据推流 1.16
SetExternalAudioPublishVolume 设置外部输入音频推流混音音量 1.16
GetExternalAudioPublishVolume 获取外部输入音频推流混音音量 1.16

接口详情

  • CreateAliRTCEngine:创建AliRTCEngine实例。
    AliRTCEngineInterface * CreateAliRTCEngine(EngineEventHandlerInterface * eventHandler,
                               int lowPort,
                               int highPort,
                               const char * logPath,
                               const char * coreServicePath);
                            
    参数名 类型 描述
    eventHandler EngineEventHandlerInterface * 录制SDK所触发的事件通过EngineEventHandlerInterface类回调通知。
    lowPort int 最小的可用端口。
    说明 创建一个SDK实例需要占用一个系统端口进行音视频数据传输,建议端口范围设置为42000~45000,并保证其他服务不会占用此范围的端口。
    highPort int 最大的可用端口。
    说明 创建一个SDK实例需要占用一个系统端口进行音视频数据传输,建议端口范围设置为42000~45000,并保证其他服务不会占用此范围的端口。
    logPath const char * 保存日志的路径。
    coreServicePath const char * AliRtcCoreService可执行程序存放的绝对路径。
  • Release:销毁AliRTCEngine实例。
    virtual void Release() = 0;
  • GetEventHandler:获取事件回调句柄。
    virtual EngineEventHandlerInterface * GetEventHandler() = 0;
  • JoinChannel:加入频道。
    virtual int JoinChannel(const AuthInfo &authInfo, const JoinChannelConfig &config) = 0;
    参数名 类型 描述
    authInfo const AuthInfo &a 认证信息,从App Server获取。
    config const JoinChannelConfig & 加入频道时的设置项。
  • LeaveChannel:离开频道。
    virtual int LeaveChannel() = 0;
  • SetVideoProfile:设置视频流推流参数。
    说明 设置之后等到下次推流的时候才能生效。
    virtual void SetVideoProfile(AliRTCSdk::Linux::VideoProfile profile, AliRTCSdk::Linux::VideoTrack track) = 0;
    参数名 类型 描述
    profile AliRTCSdk::Linux::VideoProfile 预定义的视频分辨率和帧率,详细请参见VideoProfile
    track AliRTCSdk::Linux::VideoTrack 视频流的类型,详细请参见VideoTrack
  • GetVideoProfile:获取视频流推流参数。
    说明 返回的是正在使用的(已经推流中)或者即将被使用的(下一次推流才会生效)视频分辨率和帧率,详细请参见VideoProfile 。返回值不一定是正在使用的VideoProfile,另外VideoTrackScreen是不支持的。
    virtual AliRTCSdk::Linux::VideoProfile GetVideoProfile(AliRTCSdk::Linux::VideoTrack track) = 0;
    参数名 类型 描述
    track AliRTCSdk::Linux:VideoTrack 视频流的类型,详细请参见VideoTrack
  • ConfigLocalCameraPublish:设置是否允许推送视频流(原相机流)。
    说明 需要调用Publish接口才能生效。默认允许视频流(原相机流)推流。
    virtual void ConfigLocalCameraPublish(bool enable) = 0;
    参数名 类型 描述
    enable bool 是否允许推送视频流(原相机流)。true:允许,false:禁止。
  • IsLocalCameraPublishEnabled:查询是否允许推送视频流(原相机流)。返回值,true表示允许,false表示禁止。
    virtual bool IsLocalCameraPublishEnabled() = 0;
  • ConfigLocalScreenPublish:设置是否允许推送视频流(原屏幕流)。
    说明 需要调用Publish接口才能生效。默认不允许视频流(原屏幕流)推流。
    virtual void ConfigLocalScreenPublish(bool enable) = 0;
    参数名 类型 描述
    enable bool 是否允许推送视频流(原屏幕流)。true:允许,false:禁止。
  • IsLocalScreenPublishEnabled:查询是否允许推送视频流(原屏幕流)。返回值,true表示允许,false表示禁止。
    virtual bool IsLocalScreenPublishEnabled() = 0;
  • ConfigLocalAudioPublish:设置是否允许推送音频流。
    说明 需要调用Publish接口才能生效,默认允许音频推流。
    virtual void ConfigLocalAudioPublish(bool enable) = 0;
    参数名 类型 描述
    enable bool 是否允许推送音频流小流。true:允许,false:禁止。
  • IsLocalAudioPublishEnabled:查询是否允许推送音频流小流。返回值,true表示允许,false表示禁止。
    virtual bool IsLocalAudioPublishEnabled() = 0;
  • ConfigLocalSimulcast:设置是否允许推送次要视频流小流。
    说明 需要调用Publish接口才能生效。默认允许推送次要视频流。目前只支持视频流(原相机流),不支持视频流(原屏幕流)。
    virtual int ConfigLocalSimulcast(bool enabled, AliRTCSdk::Linux::VideoTrack track) = 0;
    参数名 类型 描述
    enabled bool 是否允许推送次要视频流小流。true:允许,false:禁止。
    track AliRTCSdk::Linux::VideoTrack 视频流的类型,详细请参见VideoTrack
  • IsLocalSimulcastEnabled:查询是否允许推送次要视频流小流。返回值,true表示允许,false表示禁止。
    virtual bool IsLocalSimulcastEnabled() = 0;
  • Publish:手动推送视频和音频流。
    说明 需要推送的流通过API ConfigLocalAudioPublishConfigLocalCameraPublishConfigLocalScreenPublish进行设置。
    virtual int Publish() = 0;
  • StartRecording:手动开启录制。
    说明 如果需要手工配置所有推流和拉流,请通过JoinChannelConfig字段,再JoinChannel时,选择RecordingManually。
    virtual int StartRecording() = 0;
  • StopRecording:手动停止录制。
    virtual int StopRecording() = 0;
  • SetExternalVideoSource:设置是否启用外部视频输入源。
    说明 启用后使用PushExternalVideoFrame接口输入视频数据。
    virtual int SetExternalVideoSource(bool enable, bool useTexture, AliRTCSdk::Linux::VideoSource sourceType, AliRTCSdk::Linux::RenderMode renderMode = AliRTCSdk::Linux::RenderModeFill) = 0;
    参数名 类型 描述
    enabled bool 是否启用外部视频输入源。true:允许,false:关闭。
    useTexture bool 是否使用texture模式,目前仅支持false。
    sourceType AliRTCSdk::Linux::VideoSource 流类型。
  • PushExternalVideoFrame:输入外部视频数据。
    说明 目前输入视频类型只支持I420。
    virtual int PushExternalVideoFrame(AliRTCSdk::Linux::VideoDataSample *frame, AliRTCSdk::Linux::VideoSource sourceType) = 0;
    参数名 类型 描述
    frame AliRTCSdk::Linux::VideoDataSample * 帧数据。
    sourceType AliRTCSdk::Linux::VideoSource 流类型。
  • SetExternalAudioSource:设置是否启用外部音频输入推流。返回值,大于等于0表示成功,小于0表示失败。
    说明 通过SetExternalAudioPublishVolume设置输入音频推流音量。
    virtual int SetExternalAudioSource(bool enable, unsigned int sampleRate,  unsigned int channelsPerFrame) = 0;
    参数名 类型 描述
    enable bool 是否启用外部音频输入推流。true:开启,false:关闭。
    sampleRate unsigned int 采样率。
    channelsPerFrame unsigned int 采样率。
  • PushExternalAudioFrameRawData:输入外部音频数据推流。返回值,大于等于0表示成功,小于0表示失败。
    说明 当返回值为ERR_AUDIO_BUFFER_FULL时,需要在间隔投递数据时间长度后再次重试投递。
    virtual int PushExternalAudioFrameRawData(const void* audioSamples, unsigned int sampleLength, long long timestamp) = 0;
    参数名 类型 描述
    audioSamples const void* 音频数据。
    sampleLength unsigned int 音频数据长度。
    timestamp long long 时间戳。
  • SetExternalAudioPublishVolume:设置外部输入音频推流混音音量。
    virtual int SetExternalAudioPublishVolume(int volume) = 0;
    参数名 类型 描述
    volume int 音量,取值范围0~100。
  • GetExternalAudioPublishVolume:获取外部输入音频推流混音音量。
    virtual int GetExternalAudioPublishVolume() = 0;