URL 拉流播放
abrSubscriptionLayer
获取当前订阅的视频层级。
public Constants.AbrSubscriptionLayer abrSubscriptionLayer()
该方法仅在打开 RTE URL 时有效。
返回值
方法调用成功,返回 AbrSubscriptionLayer 对象。
所属接口类addView
audioBitsPerSample
获取每个音频采样点的位数。
public int audioBitsPerSample()
返回值
方法调用成功,返回每个音频采样点的位数,单位为 bit。
所属接口类audioChannels
audioSampleRate
Canvas
code
currentUrl
destroy
销毁 RTE 对象,释放相关资源。
public synchronized void destroy() throws RteException
duration
获取当前媒体资源的时长。
public long duration()
返回值
方法调用成功,返回当前媒体资源的时长,单位为毫秒。
所属接口类errorCode
getAbrFallbackLayer
获取已配置的视频流回退选项。
public Constants.AbrFallbackLayer getAbrFallbackLayer() throws RteException
调用时机
你必须在调用 getConfigs 之后调用此方法。
返回值
方法调用成功,返回已配置的视频流回退选项。详见 AbrFallbackLayer。
所属接口类getAbrSubscriptionLayer
获取已订阅视频流的质量层级。
public Constants.AbrSubscriptionLayer getAbrSubscriptionLayer() throws RteException
调用时机
你需要在调用 getConfigs 方法之后调用此方法。
返回值
方法调用成功,返回当前设置的视频质量层级。详见 AbrSubscriptionLayer。
所属接口类getAppId
getAutoPlay
获取媒体播放器的自动播放设置。
public boolean getAutoPlay() throws RteException
调用时机
此方法必须在调用 getConfigs 之后调用。
返回值
- true:获取成功。
- false:获取失败。
getConfigs [3/3]
获取播放器当前的视频渲染配置。
public void getConfigs(CanvasConfig config) throws RteException
调用时机
你必须在调用 Canvas 之后调用此方法。
参数
- config
- Canvas 对象的设置,详见 CanvasConfig。
getConfigs [2/3]
获取当前媒体播放器的配置选项。
public void getConfigs(PlayerConfig config) throws RteException
调用时机
该方法必须在调用 Player 之后使用。
参数
- config
- 媒体播放器配置对象,详见 PlayerConfig。
getConfigs [1/3]
getFromBridge
从 RtcEngine 中桥接一个 RTE 对象。
public static synchronized Rte getFromBridge() throws RteException
通过该方法创建的 RTE 对象无需通过 initMediaEngine 进行初始化。如果你尚未创建并初始化 RTC 引擎,可以先调用 RTE 创建一个 RTE 对象,再调用 initMediaEngine 进行初始化。
调用时机
调用此方法前,请确保已调用 create [2/2] 初始化 RTC 引擎。
返回值
方法调用成功,返回 RTE 对象。
getInfo
检索与播放器和媒体流相关的信息。
public void getInfo(PlayerInfo info) throws RteException
调用时机
该方法必须在调用 Player 之后使用。
参数
- info
- 与播放器和媒体流相关的信息,详见 PlayerInfo。
getJsonParameter
getLoopCount
获取媒体文件的循环播放次数。
public int getLoopCount() throws RteException
返回值
方法调用成功,返回媒体文件的循环播放次数。
所属接口类getVideoMirrorMode
获取视频镜像模式。
public Constants.VideoMirrorMode getVideoMirrorMode() throws RteException
返回值
方法调用成功,返回视频镜像模式,详见 VideoMirrorMode。
所属接口类getPlaybackSpeed
获取播放速度参数。
public int getPlaybackSpeed() throws RteException
返回值
方法调用成功,返回播放速度的值。
所属接口类getPlayoutVolume
获取媒体播放器的播放音量。
public int getPlayoutVolume() throws RteException
返回值
方法调用成功,返回媒体播放器的播放音量级别。
所属接口类getPosition
getVideoRenderMode
获取当前设置的视频镜像模式。
public Constants.VideoRenderMode getVideoRenderMode() throws RteException
调用时机
你需要在调用 getConfigs 之后调用此方法。
返回值
方法调用成功,返回当前设置的视频镜像模式。详见 VideoMirrorMode。
所属接口类getStats
获取播放器当前播放媒体资源的统计信息。
public void getStats(PlayerGetStatsCallback callback)
该方法通过回调异步返回播放器的统计信息。
调用时机
该方法必须在调用 openWithUrl 之后调用。
参数
- callback
- 用于异步接收统计信息和错误信息的回调接口。详见 PlayerGetStatsCallback。
hasAudio
hasVideo
initMediaEngine
初始化 RTE 引擎。
public void initMediaEngine(AsyncCallback callBack) throws RteException
该方法为异步方法,通过回调函数返回初始化结果。你需要在创建 RTE 对象并设置 App ID 后调用该方法。
参数
- callBack
- 异步返回引擎初始化结果的回调。详见 AsyncCallback。
isAudioMuted
判断播放器是否停止接收远端音频流。
public boolean isAudioMuted()
返回值
- true:播放器已停止接收远端音频流。
- false:播放器仍在接收远端音频流。
isVideoMuted
判断播放器是否停止接收远端视频流。
public boolean isVideoMuted()
返回值
- true:播放器已停止接收远端视频流。
- false:播放器仍在接收远端视频流。
message
muteAudio
开始或停止接收音频流。
public void muteAudio(boolean mute) throws RteException
调用时机
该方法需要在调用 openWithUrl 方法之后调用。
相关回调
调用该方法成功后,会触发 onPlayerInfoUpdated 回调,上报最新的播放器和媒体拉流信息。
参数
- mute
- 是否接收音频流:
- true:不接收音频流。
- false:接收音频流。
muteVideo
开始或停止接收远端视频流。
public void muteVideo(boolean mute) throws RteException
调用时机
你必须在调用 openWithUrl 之后调用该方法。
相关回调
该方法调用成功后,会触发 onPlayerInfoUpdated 回调,用于上报最新的播放器和媒体流信息。
参数
- mute
- 是否接收远端视频流:
- true:不接收远端视频流。
- false:接收远端视频流。
openWithUrl
打开一个 URL 资源。
public void openWithUrl(String url, long startTime, AsyncCallback callback)
该方法支持通过 URL 打开实时流媒体资源。如果你希望加快打开速度,可以在调用该方法前使用 preloadWithUrl 预加载资源。 如果资源打开失败,你会收到 onStateChanged 回调,播放器状态为 FAILED。此时需要先调用 stop,然后再次调用 openWithUrl 重新打开资源。 如果你关闭了自动播放功能,可以在资源打开后调用 play 开始播放。
rte:// 开头的 URL、CDN 推流 URL 和本地媒体文件。调用时机
该方法必须在 Player 之后调用。
相关回调
调用该方法后会触发 onStateChanged 回调,播放器状态为 OPENING,表示正在打开 URL。成功打开后,播放器状态为 OPEN_COMPLETED。
参数
- url
- 要打开的 URL,可以是 CDN 推流 URL、本地媒体文件,或以
rte://为前缀的 URL。 - startTime
- 播放的起始位置,单位为毫秒。
- callback
- 异步通知打开 URL 资源结果的回调。你可以通过该回调的 onResult 方法获取错误信息。
pause
暂停播放。
public void pause() throws RteException
调用时机
该方法必须在调用 play 之后调用。
相关回调
成功调用该方法后,会触发 onStateChanged 回调,报告播放器状态为 PAUSED。
play
播放一个 URL 资源。
public void play() throws RteException
如果你已关闭自动播放,在使用 openWithUrl 成功打开一个在线媒体流后,可以调用该方法开始播放。
rte:// 为前缀的 URL。调用时机
仅在收到状态为 OPEN_COMPLETED 的 onStateChanged 回调后调用该方法。
相关回调
调用该方法成功后,会触发 onStateChanged 回调以上报播放器状态。
Player
preloadWithUrl
预加载 URL 资源。
public static void preloadWithUrl(String url) throws RteException
成功预加载资源可以加快使用 openWithUrl 打开 URL 资源的速度,从而减少等待时间。
rte:// 为前缀的 URL。最多可预加载 20 个 URL,若超过限制,新预加载的 URL 会替换最早的 URL。适用场景
在打开媒体资源前预加载,可以减少用户等待时间,提供更流畅的视听体验。
调用时机
必须在调用 openWithUrl 之前调用该方法。
参数
- url
- 以
rte://为前缀的 URL。各字段的详细信息参见观众端的“输入在线媒体流”。
registerObserver
注册播放器的观察者对象。
public void registerObserver(PlayerObserver observer) throws RteException
在调用此方法之前,你需要实现一个继承自 PlayerObserver 的接口类。
调用时机
该方法必须在调用 Player 之后执行。
参数
- observer
- 详见 PlayerObserver。
removeView
Rte
构造一个 Rte 对象。
public Rte(InitialConfig initialConfig)
调用时机
你必须在调用 initMediaEngine 之前调用此方法。
参数
- initialConfig
- 初始化设置。你可以传入
null。
seek
setAbrFallbackLayer
设置已订阅远端视频流的回退选项。
public void setAbrFallbackLayer(Constants.AbrFallbackLayer fallbackLayer) throws RteException
在网络状况不佳时,SDK 会将已订阅远端视频流的分辨率降级到指定的视频质量层。每个质量层对应特定的分辨率和码率。网络恢复后,SDK 会将视频流恢复至原始质量层。
LOW 或 AUDIO_ONLY。适用场景
一般场景下,可调用该方法并将回退质量层设置为 kRteAbrFallbackLow 或 kRteAbrFallbackAudioOnly。当网络较差时,SDK 会回退为视频小流或仅接收音频流。 如果对回退视频流的分辨率有更高要求,可联系技术支持开启 ABR 功能。开启后,可自定义每一层的分辨率。SDK 会以你指定的最低质量层的分辨率为下限,并根据网络状况在该范围内动态调整分辨率。
调用时机
必须在调用 setConfigs 之前调用该方法。
参数
- fallbackLayer
- 视频流的回退质量层,详见 AbrFallbackLayer。信息自定义分辨率时,请确保视频质量层按从高到低的分辨率排序;若分辨率相同,则按帧率从高到低排序。
视频质量层 分辨率 LAYER12160p (4K) LAYER21440p (2K) LAYER31080p (HD) LAYER4720p (HD) LAYER5540p (SD) LAYER6480p (SD)
setAbrSubscriptionLayer
设置订阅媒体流的视频质量等级。
public void setAbrSubscriptionLayer(Constants.AbrSubscriptionLayer subscriptionLayer) throws RteException
你可以根据实际网络状况,在所订阅的视频流中切换不同的视频质量等级。如果你需要更高级的视频分辨率切换控制,可以联系技术支持开启 ABR(自适应码率)功能。开启后,你可以为每个视频质量等级自定义分辨率,使观众可以根据需要在多质量层级视频流的所有等级之间切换。
HIGH 或 LOW 视频质量等级。适用场景
在网络环境不稳定的场景中,订阅端可根据实际网络状况选择合适的视频质量层级,以保障流畅的观看体验。
调用时机
该方法必须在调用 setConfigs 之前调用。
参数
- subscriptionLayer
- 要订阅的视频质量等级,详见 AbrSubscriptionLayer。在自定义
LAYER1到LAYER6的分辨率时,你可以参考下表,或根据实际需求进行配置: 注意:自定义分辨率时,必须按分辨率从高到低排序各视频质量等级(Layer),若分辨率相同,则按帧率从高到低排序。视频质量等级 分辨率 LAYER12160p (4K) LAYER21440p (2K) LAYER31080p (HD) LAYER4720p (HD) LAYER5540p (SD) LAYER6480p (SD)
setAppId
设置项目的声网 App ID。
public void setAppId(String appId) throws RteException
调用时机
你必须在调用 initMediaEngine 之前调用此方法。
参数
- appId
- 声网 App ID,可从控制台获取。
setAutoPlay
设置是否启用自动播放。
public void setAutoPlay(boolean autoPlay) throws RteException
你可以在调用 openWithUrl 之前调用此方法设置是否启用自动播放。如果未设置,默认启用自动播放。
调用时机
此方法必须在调用 openWithUrl 之前调用。
参数
- autoPlay
- 是否启用自动播放:
- true:(默认)启用自动播放。
- false:关闭自动播放。
setCanvas
setConfigs [3/3]
设置播放器的视频渲染配置。
public void setConfigs(CanvasConfig config) throws RteException
调用时机
该方法需要在调用 openWithUrl 之前调用。
参数
- config
- 用于设置 Canvas 对象的配置,详见 CanvasConfig。
setConfigs [2/3]
设置播放器配置。
public void setConfigs(PlayerConfig config) throws RteException
你可以调用此方法配置播放器,例如启用自动播放、订阅不同分辨率和码率的视频流。
调用时机
此方法必须在调用 Player 之后调用。
参数
- config
- 播放器配置对象,详见 PlayerConfig。
setConfigs [1/3]
setJsonParameter
setLoopCount
setVideoMirrorMode
设置视频镜像模式。
public void setVideoMirrorMode(Constants.VideoMirrorMode mode) throws RteException
你必须在调用 setConfigs 方法之前调用此方法。
调用时机
你必须在调用 setConfigs 之前调用此方法。
参数
- mode
- 镜像模式,详见 VideoMirrorMode。默认值为
AUTO,由 SDK 自动决定镜像模式。
setPlaybackSpeed
设置播放速度参数。
public void setPlaybackSpeed(int speed) throws RteException
你可以在调用 openWithUrl 后调用该方法。
参数
- speed
- 播放速度。有效范围为 [50, 400]。
setPlayoutVolume
设置播放音量参数。
public void setPlayoutVolume(int volume) throws RteException
参数
- volume
- 播放器的音量值。有效范围为 [0, 400]。
setVideoRenderMode
设置视频渲染模式。
public void setVideoRenderMode(Constants.VideoRenderMode mode) throws RteException
参数
- mode
- 要设置的视频渲染模式,详见 VideoRenderMode。信息默认值为
VideoRenderMode.HIDDEN。
state
stop
停止播放媒体资源。
public void stop() throws RteException
如果使用 openWithUrl 打开 URL 流失败,你需要先调用该方法,然后再调用 openWithUrl 重新打开 URL。
调用时机
该方法必须在调用 openWithUrl 之后调用。
相关回调
调用成功后,该方法会触发 onStateChanged 回调,并上报播放器状态为 STOPPED。
streamCount
switchWithUrl
在播放过程中切换到新的 URL。
public void switchWithUrl(String url, boolean syncPts, AsyncCallback callback)
当 SDK 返回播放器状态为 OPEN_COMPLETED 时,必须调用该方法。
参数
- url
- 要切换的 URL 资源。
- syncPts
- true:同步播放位置。
- false:(默认)不同步播放位置。
- callback
- 异步通知切换操作结果的回调。你可以通过该回调的
err参数得知操作的结果或错误码信息,详见 AsyncCallback。
unregisterObserver
取消注册媒体播放器事件观察者对象。
public void unregisterObserver(PlayerObserver observer) throws RteException
调用 registerObserver 注册媒体播放器事件观察者对象后,如需取消注册,请调用该方法。
调用时机
该方法必须在调用 registerObserver 之后调用。
参数
- observer
- 详见 PlayerObserver。
videoHeight
videoWidth
onAudioVolumeIndication
播放器音量变化回调。
public void onAudioVolumeIndication(int volume)
触发时机
该回调在播放器音量发生变化时被触发。
参数
- volume
- 播放器当前的音量,取值范围为 [0, 225]。
onEvent
播放器事件回调。
public void onEvent(int event)
如果你需要监听播放器事件,必须先调用 registerObserver 注册播放器观察者对象。
触发时机
该回调在播放器事件发生变化时被触发。
参数
- event
- 播放器事件。信息详见 PlayerEvent。
onMetadata [2/2]
接收媒体流附加信息的回调。
public void onMetadata(int type, byte[] data)
调用 registerObserver 注册播放器观察者对象后,才能接收媒体流中的附加信息。
触发时机
该回调在 SDK 解析播放器正在播放的媒体流中的附加信息后触发,报告数据类型及其具体内容。
参数
- type
- 附加信息的类型:
- 0:SEI(Supplemental Enhancement Information)类型。
- data
- 解析后的附加信息。
onPlayerInfoUpdated [2/2]
播放器和媒体流信息发生变化回调。
public void onPlayerInfoUpdated(PlayerInfo info)
你可以调用 registerObserver 注册播放器观察者对象来获取播放器和媒体流的信息,也可以直接调用 getInfo 方法获取信息。
触发时机
该回调在播放器和媒体流信息发生变化时被触发。
参数
- info
- 播放器及媒体流的相关信息,详见 PlayerInfo。
onPositionChanged
播放进度变化回调。
public void onPositionChanged(long curr_time, long utc_time)
触发时机
该回调在媒体资源播放过程中每秒触发一次。
参数
- curr_time
- 当前播放进度,单位为毫秒。
- utc_time
- 当前 NTP(网络时间协议)时间,单位为毫秒。
onResolutionChanged
视频分辨率变化的回调。
public void onResolutionChanged(int width, int height)
你必须先调用 registerObserver 注册一个播放器观察者对象,才能监听视频流分辨率的变化。
触发时机
该回调在视频流的分辨率发生变化时被触发,报告当前视频的宽度和高度。
参数
- width
- 视频帧的宽度,单位为 px。
- height
- 视频帧的高度,单位为 px。
onResult
onResult
异步获取媒体资源统计信息操作完成时触发的回调。
@CalledByNative void onResult(PlayerStats playerStats, Error error);
触发时机
该回调在异步获取媒体资源信息的操作完成时被触发。
参数
- playerStats
- 媒体资源的统计信息。详见 PlayerStats。
- error
- 状态和错误信息。详见 Error。
onStateChanged
播放器状态变化的回调。
public void onStateChanged(int old_state, int new_state, Error error)
如果你需要监听播放器状态的变化,必须先调用 registerObserver 注册播放器观察者对象。
触发时机
该回调在播放器状态发生变化时被触发。
参数
- old_state
- 变更前的播放器状态。详见 PlayerState。
- new_state
- error
- 状态或错误信息。详见 Error。