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

目录

基础接口

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

频道相关接口

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

发布相关接口

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

录制相关接口

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

视频相关接口

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

音频相关接口

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

媒体播放器相关接口

API 描述 以上版本支持
CreateMediaPlayer 创建媒体播放器 1.18.1
DestroyMediaPlayer 销毁媒体播放器 1.18.1
SetEventHandler 设置播放器状态和事件回调通知 1.18.1
GetEventHandler 获取播放器状态和事件回调句柄 1.18.1
LoadResource 加载播放资源 1.18.1
Start 开始播放 1.18.1
Stop 停止播放 1.18.1
Pause 暂停播放 1.18.1
Resume 恢复播放 1.18.1
SeekTo 跳转播放 1.18.1
SetVolume 设置播放器的音量(影响推流出去的音量) 1.18.1
SetVideoSource 设置播放器的视频数据是否推流 1.18.1
EnableAudioSource 设置播放器的音频数据是否推流 1.18.1
GetDuration 获取播放的总时长 1.18.1
GetCurrentPlaybackTime 获取当前的播放位置 1.18.1
GetCurrentVomume 获取当前的播放音量 1.18.1
GetCurrentPlaybackState 获取当前的播放状态 1.18.1
GetIndex 获取当前的播放器ID 1.18.1

接口详情

  • 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;
  • CreateMediaPlayer:创建媒体播放器。
    virtual AliRTCMediaPlayerInterface * CreateMediaPlayer() = 0;
  • DestroyMediaPlayer:销毁媒体播放器。
    virtual int DestroyMediaPlayer(AliRTCMediaPlayerInterface *mediaPlayer) = 0;
  • SetEventHandler:设置播放器状态和事件回调通知。返回0表示成功,其他表示失败。
    virtual int SetEventHandler(AliRTCMediaPlayerEventHandlerInterface *eventHandler) = 0;
    参数名 类型 描述
    eventHandler AliRTCMediaPlayerEventHandlerInterface * 播放器状态和事件回调句柄。
  • GetEventHandler:取播放器状态和事件回调句柄。
    virtual AliRTCMediaPlayerEventHandlerInterface *GetEventHandler() = 0;
  • LoadResource:加载播放资源。返回0表示接口调用成功,其他表示失败。真正加载资源的成功与否需要通过OnStateChange回调接口中的状态来确定。
    virtual int LoadResource(const char *path) = 0;
    参数名 类型 描述
    path const char * 播放资源的地址,目前支持本地绝对路径和在线地址。
  • Start:开始播放。返回0表示接口调用成功,其他表示失败。
    说明 该接口需要等到播放器状态变为MediaPlayerStatePrepared才能调用。
    virtual int Start() = 0;
  • Stop:停止播放。返回0表示接口调用成功,其他表示失败。
    virtual int Stop() = 0;
  • Pause:暂停播放。返回0为接口调用成功,其他表示失败。
    virtual int Pause() = 0;
  • Resume:恢复播放。返回0为接口调用成功,其他表示失败。
    virtual int Resume() = 0;
  • SeekTo:跳转播放。返回0为接口调用成功,其他表示失败。
    virtual int SeekTo(unsigned long long millisecond) = 0;
    参数名 类型 描述
    millisecond unsigned long long 跳转到的播放位置,单位为毫秒。
  • SetVolume:设置播放器的音量(影响推流出去的音量)。返回0为接口调用成功,其他表示失败。
    virtual int SetVolume(int volume) = 0;
    参数名 类型 描述
    volume int 音量,取值范围0~100。
  • SetVideoSource:设置播放器的视频数据是否推流。返回0为接口调用成功,其他表示失败。
    virtual int SetVideoSource(bool enable, AliRTCSdk::Linux::VideoSource sourceType, AliRTCSdk::Linux::RenderMode renderMode) = 0;
    参数名 类型 描述
    enable bool 是否推流。true:允许,false:禁止。
    sourceType AliRTCSdk::Linux::VideoSource 选择视频源推流。
    renderMode AliRTCSdk::Linux::RenderMode 视频源的缩放方式。
  • EnableAudioSource:设置播放器的音频数据是否推流。返回0为接口调用成功,其他表示失败。
    virtual int EnableAudioSource(bool enable) = 0;
    参数名 类型 描述
    enable bool 是否推流。true:允许,false:禁止。
  • GetDuration:获取播放的总时长。
    说明 需要等到播放器的状态为MediaPlayerStatePrepared才能获取到准确的时长。
    virtual unsigned long long GetDuration() = 0;
  • GetCurrentPlaybackTime:获取当前的播放位置。
    说明 需要等到播放器的状态为MediaPlayerStatePrepared才能获取到准确的当前位置。
    virtual unsigned long long GetCurrentPlaybackTime() = 0;
  • GetCurrentVomume:获取当前的播放音量。
    说明 需要等到播放器的状态为MediaPlayerStatePrepared才能获取到准确的当前音量。
    virtual int GetCurrentVomume() = 0;
  • GetCurrentPlaybackState:获取当前的播放状态。
    virtual AliRTCSdk::Linux::MediaPlayerState GetCurrentPlaybackState() = 0;
  • GetIndex:获取当前的播放器ID。
    说明 可以支持同时创建多个播放器,该接口可以用来区分各个播放器。
    virtual int GetIndex() = 0;