通过阅读本文,您可以了解到Linux SDK(Java)的AliRtcEngine接口详情。
目录
基础接口
API | 描述 | 支持的最低版本 |
---|---|---|
createInstance | 创建AliRTCEngine实例。 | 1.18.1 |
destroy | 销毁AliRTCEngine实例。 | 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 |
addVideoWatermark | 添加水印。 | 1.18.11 |
clearVideoWatermark | 清除对应数据流水印信息。 | 1.18.11 |
音频相关接口
API | 描述 | 支持的最低版本 |
---|---|---|
setExternalAudioSource | 设置是否启用外部音频输入推流。 | 1.18.1 |
pushExternalAudioFrameRawData | 输入外部音频数据推流。 | 1.18.1 |
setExternalAudioPublishVolume | 设置外部输入音频推流混音音量。 | 1.18.1 |
getExternalAudioPublishVolume | 获取外部输入音频推流混音音量。 | 1.18.1 |
setAudioChannels | 设置音频的推流模式。 | 1.18.12 |
媒体播放器相关接口
API | 描述 | 支持的最低版本 |
---|---|---|
createMediaPlayer | 创建媒体播放器。 | 1.18.1 |
destroyMediaPlayer | 销毁媒体播放器。 | 1.18.1 |
setEventHandler | 设置播放器状态和事件回调通知。 | 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 |
setVideoSource | 设置播放器的视频数据是否推流。 | 1.18.1 |
enableAudioSource | 设置播放器的音频数据是否推流。 | 1.18.1 |
setVolume | 设置播放器的音量(影响推流出去的音量)。 | 1.18.1 |
getDuration | 获取播放的总时长。 | 1.18.1 |
getCurrentPlaybackTime | 获取当前的播放位置。 | 1.18.1 |
getCurrentVomume | 获取当前的播放音量。 | 1.18.1 |
getCurrentPlaybackState | 获取当前的播放状态。 | 1.18.1 |
getIndex | 获取当前的播放器ID。 | 1.18.1 |
接口详情
- createInstance:创建AliRTCEngine实例。
public static AliRTCLinuxEngine createInstance(AliRTCLinuxEngineListener listener, int lowPort, int highPort, String logPath, String coreServicePath) { return new AliRTCLinuxEngineImpl(listener, lowPort, highPort, logPath, coreServicePath); }
参数名 类型 描述 listener AliRTCLinuxEngineListener 录制SDK所触发的事件通过 AliRTCLinuxEngineListener类回调通知。 lowPort int 最小的可用端口。 说明 创建一个SDK实例需要占用一个系统端口进行音视频数据传输,建议端口范围设置为42000~45000,并保证其他服务不会占用此范围的端口。highPort int 最大的可用端口。 说明 创建一个SDK实例需要占用一个系统端口进行音视频数据传输,建议端口范围设置为42000~45000,并保证其他服务不会占用此范围的端口。logPath String 保存日志的路径。 coreServicePath String AliRtcCoreService可执行程序存放的绝对路径。 - destroy:销毁AliRTCEngine实例。
public abstract void destroy();
- joinChannel:加入频道。
public abstract int joinChannel(AuthInfo authInfo, JoinChannelConfig config);
参数名 类型 描述 authInfo AuthInfo 认证信息,从App Server获取。 config JoinChannelConfig 加入频道时的设置项。 - leaveChannel:离开频道。
public abstract int leaveChannel();
- setVideoProfile:设置视频流推流参数。
说明 设置之后等到下次推流的时候才能生效。
public abstract void setVideoProfile(VideoProfile profile, VideoTrack track);
参数名 类型 描述 profile VideoProfile 预定义的视频分辨率和帧率,具体请参见VideoProfile。 track VideoTrack 视频流的类型,具体请参见VideoTrack。 - getVideoProfile:获取视频流推流参数。
说明 返回的是正在使用的(已经推流中)或者即将被使用的(下一次推流才会生效)视频分辨率和帧率,具体请参见VideoProfile。返回值不一定是正在使用的VideoProfile,另外不支持VideoTrackScreen。
public abstract int getVideoProfile(VideoTrack track);
参数名 类型 描述 track VideoTrack 视频流的类型,具体请参见VideoTrack。 - configLocalCameraPublish:设置是否允许推送相机流。
说明 需要调用publish才能生效。默认允许相机流推流。
public abstract void configLocalCameraPublish(boolean enable);
参数名 类型 描述 enable boolean 是否允许推送相机流。取值: - true:允许。
- false:禁止。
- isLocalCameraPublishEnabled:查询是否允许推送相机流。
返回说明public abstract boolean isLocalCameraPublishEnabled();
返回true表示允许,false表示禁止。
- configLocalScreenPublish:设置是否允许推送屏幕流。
说明 需要调用publish接口才能生效。默认不允许屏幕流推流。
public abstract void configLocalScreenPublish(boolean enable);
参数名 类型 描述 enable boolean 是否允许推送屏幕流。取值: - true:允许。
- false:禁止。
- isLocalScreenPublishEnabled:查询是否允许推送屏幕流。
返回说明public abstract boolean isLocalScreenPublishEnabled();
返回true表示允许,false表示禁止。
- configLocalAudioPublish:设置是否允许推送音频流。
说明 需要调用publish接口才能生效,默认允许音频推流。
public abstract void configLocalAudioPublish(boolean enable);
参数名 类型 描述 enable boolean 是否允许推送音频流。取值: - true:允许。
- false:禁止。
- isLocalAudioPublishEnabled:查询是否允许推送音频流。
返回说明public abstract boolean isLocalAudioPublishEnabled();
返回true表示允许,false表示禁止。
- configLocalSimulcast:设置是否允许推送次要视频流小流。
说明 需要调用publish接口才能生效。默认允许推送次要视频流。目前只支持相机流,不支持屏幕流。
public abstract int configLocalSimulcast(boolean enabled, VideoTrack track);
参数名 类型 描述 enabled boolean 是否允许推送次要视频流小流。取值: - true:允许。
- false:禁止。
track VideoTrack 视频流的类型,详细请参见VideoTrack。 - isLocalSimulcastEnabled:查询是否允许推送次要视频流小流。
返回说明public abstract boolean isLocalSimulcastEnabled();
返回true表示允许,false表示禁止。
- publish:手动推送视频和音频流。
public abstract int publish();
- startRecording:手动开启录制。
说明 如果需要手工配置所有推流和拉流,请通过JoinChannelConfig字段,再joinChannel时,选择RecordingManually。
public abstract int startRecording();
- stopRecording:手动停止录制。
public abstract int stopRecording();
- setExternalVideoSource:设置是否启用外部视频输入源。
说明 启用后使用PushExternalVideoFrame接口输入视频数据。
public abstract int setExternalVideoSource(boolean enable, boolean useTexture, VideoSource source, RenderMode renderMode);
参数名 类型 描述 enable boolean 是否启用外部视频输入源。取值: - true:启用。
- false:关闭。
useTexture boolean 是否使用texture模式,目前只支持false。 source VideoSource 流类型。 renderMode RenderMode 绘制模式。 - pushExternalVideoFrame:输入外部视频数据。
说明 目前输入视频类型只支持I420。
public abstract int pushExternalVideoFrame(VideoDataSample frame, VideoSource source);
参数名 类型 描述 frame VideoDataSample 帧数据。 source VideoSource 流类型。 - addVideoWatermark:添加水印。
/** * @brief 通过本地文件路径添加水印 * @param sourceType 添加水印的视频流类型 * @param image_url 水印图片路径,只支持本地路径 * @param config 水印配置 * @return 0:接口调用成功,-1:接口调用失败 * @note 该接口返回值只表示接口调用是否成功,真正的水印是否添加成功通过回调函数返回 */ public abstract int addVideoWatermark(VideoSource sourceType, String imageUrl, WaterMarkConfig config);
/** * @brief 通过图片内存地址添加水印 * @param sourceType 添加水印的视频流类型 * @param imageData 水印图片内存地址 * @param imageLength 水印图片长度 * @param config 水印配置 * @return 0:接口调用成功,-1:接口调用失败 * @note 该接口返回值只表示接口调用是否成功,真正的水印是否添加成功通过回调函数返回 */ public abstract int addVideoWatermark(VideoSource sourceType, byte[] imageData, int imageLength, WaterMarkConfig config);
- clearVideoWatermark:清除对应数据流水印信息。
/** * @brief 清除对应数据流水印信息 * @param sourceType 清除水印的视频流类型 * @return 0:接口调用成功,-1:接口调用失败 * @note 该接口返回值只表示接口调用是否成功,真正的水印是否清除成功通过回调函数返回 */ public abstract int clearVideoWatermark(VideoSource sourceType);
- setExternalAudioSource:设置是否启用外部音频输入推流。
说明 您可以通过setExternalAudioPublishVolume设置输入音频推流音量。
public abstract int setExternalAudioSource(boolean enable, int sampleRate, int channelsPerFrame);
参数名 类型 描述 enable boolean 是否启用外部音频输入推流。取值: - true:启用。
- false:关闭。
sampleRate int 采样率。 channelsPerFrame int 外部音频数据声道数。 返回值大于等于0表示设置成功,小于0表示设置失败。
- pushExternalAudioFrameRawData:输入外部音频数据推流。
public abstract int pushExternalAudioFrameRawData(byte[] audioSamples, int sampleLength, long timestamp);
参数名 类型 描述 audioSamples byte[] 音频数据。 sampleLength int 音频数据长度。 timestamp long 时间戳。 返回值大于等于0表示调用成功,小于0表示调用失败。
说明 当返回值为ERR_AUDIO_BUFFER_FULL时,需要在间隔投递数据时间长度后再次重试投递。 - setExternalAudioPublishVolume:设置外部输入音频推流混音音量。
public abstract int setExternalAudioPublishVolume(int volume);
参数名 类型 描述 volume int 音量,取值范围0~100。 - getExternalAudioPublishVolume:获取外部输入音频推流混音音量。
public abstract int getExternalAudioPublishVolume();
- setAudioChannels:设置音频的推流模式。
public abstract int setAudioChannels(ExpectedAudioType type);
参数说明
参数名 类型 描述 type ExpectedAudioType 声道数。 返回0表示调用成功,-1表示调用失败。
- createMediaPlayer:创建媒体播放器。
public abstract AliRTCLinuxMediaPlayer createMediaPlayer();
- destroyMediaPlayer:销毁媒体播放器。
public abstract int destroyMediaPlayer(AliRTCLinuxMediaPlayer player);
- setEventHandler:设置播放器状态和事件回调通知。
public int setEventHandler(AliRTCLinuxMediaPlayerListener eventHandler);
参数名 类型 描述 eventHandler AliRTCLinuxMediaPlayerListener 播放器状态和事件回调句柄。 返回0表示设置成功,其他表示设置失败。
- loadResource:加载播放资源。真正加载资源的成功与否需要通过OnStateChange回调接口中的状态来确定。
public int loadResource(String path);
参数名 类型 描述 path String 播放资源的地址,目前支持本地绝对路径和在线地址。 返回0表示调用成功,其他表示调用失败。
- start:开始播放。
说明 该接口需要等到播放器状态变为MediaPlayerStatePrepared才能调用。
返回说明public int start();
返回0表示调用成功,其他表示调用失败。
- stop:停止播放。
返回说明public int stop();
返回0表示调用成功,其他表示调用失败。
- pause:暂停播放。
返回说明public int pause();
返回0表示调用成功,其他表示调用失败。
- resume:恢复播放。
返回说明public int resume();
返回0表示调用成功,其他表示调用失败。
- seekTo:跳转播放。
public int seekTo(long millisecond);
参数名 类型 描述 millisecond long 跳转到的播放位置,毫秒为单位。 返回0表示调用成功,其他表示调用失败。
- setVideoSource:设置播放器的视频数据是否推流。
public int setVideoSource(boolean enable, AliRTCLinuxEngine.VideoSource source, AliRTCLinuxEngine.RenderMode renderMode);
参数名 类型 描述 enable boolean 是否推流。取值: - true:允许。
- false:禁止。
source AliRTCLinuxEngine.VideoSource 选择视频源推流。 renderMode AliRTCLinuxEngine.RenderMode 视频源的缩放方式。 返回0表示调用成功,其他表示调用失败。
- enableAudioSource:设置播放器的音频数据是否推流。
public int enableAudioSource(boolean enable);
参数名 类型 描述 enable boolean 是否推流。取值: - true:允许。
- false:禁止。
返回0表示调用成功,其他表示调用失败。
- setVolume:设置播放器的音量(影响推流出去的音量)。
public int setVolume(int volume);
参数名 类型 描述 volume int 音量,取值范围0~100。 返回0表示调用成功,其他表示调用失败。
- getDuration:获取播放的总时长。
说明 需要等到播放器的状态为MediaPlayerStatePrepared才能获取到准确的时长。
public long getDuration();
- getCurrentPlaybackTime:获取当前的播放位置。
说明 需要等到播放器的状态为MediaPlayerStatePrepared才能获取到准确的当前位置。
public long getCurrentPlaybackTime();
- getCurrentVomume:获取当前的播放音量。
说明 需要等到播放器的状态为MediaPlayerStatePrepared才能获取到准确的当前音量。
public int getCurrentVomume();
- getCurrentPlaybackState:获取当前的播放状态。
public MediaPlayerState getCurrentPlaybackState();
- getIndex:获取当前的播放器ID。
说明 支持同时创建多个播放器,该接口可以用来区分各个播放器。
public int getIndex();