IPlayerServerHandler
一个处理程序的接口,用于提供PlayerServer的服务逻辑。
属性
handleClearTextView()
handleClearTextView: (
sessionId?) =>void
处理清除文本视图的请求。当应用通过交互式组件调用IPlayerClient.clearTextView时,就会收到此调用。
应用必须实现此函数才能在与sessionId对应的VideoPlayer实例上调用clearCaptionViewHandle。
参数
sessionId?
用于清除字幕界面的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。
返回值
void
抛出
如果给定的sessionId不存在。
handleClearVideoView()
handleClearVideoView: (
sessionId?) =>void
处理清除文本视图的请求。当应用通过交互式组件调用IPlayerClient.clearVideoView时,就会收到此调用。
应用必须实现此函数才能在与sessionId对应的VideoPlayer实例上调用clearSurfaceHandle。
参数
sessionId?
用于清除文本视图的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。
返回值
void
抛出
如果给定的sessionId不存在。
handleGetCurrentPosition()
handleGetCurrentPosition: (
sessionId?) =>number
处理对交互式组件的请求,以获取媒体播放的当前播放位置。当应用通过交互式组件调用IPlayerClient.getCurrentPosition时,就会收到此调用。
应用必须实现此函数才能从与sessionId对应的AudioPlayer或VideoPlayer实例中获取currentTime,然后应用必须使用表示当前播放位置的number(以秒为单位)来解析Promise。
参数
sessionId?
请求的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。
返回值
number
与sessionId对应的媒体播放会话的当前播放位置。
抛出
如果给定的sessionId不存在。
handleLoad()
handleLoad: (
mediaInfo,loadParams?,sessionId?) =>void
处理通过URL加载内容的请求。当应用通过交互式组件调用IPlayerClient.load时,就会收到此调用。
对于与sessionId相对应的播放器会话,应用必须实现此函数,才能使用mediaInfo和loadParams中提供的字段值来初始化MediaPlayer实例。
参数
mediaInfo
这是一个对象,用于描述加载媒体内容所必需的URL和HTTP标头。
loadParams?
通过URL加载内容所需的参数。
sessionId?
加载内容的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。
返回值
void
抛出
如果给定的sessionId不存在。
handleMessage()
handleMessage: (
message,sessionId?) =>void
处理从交互式组件接收自定义消息的请求。应用可以使用message对象来执行自定义操作。当应用通过交互式组件调用IPlayerClient.sendMessage时,就会收到此调用。
应用可以实现此函数来处理服务组件中的自定义操作。
参数
message
any
要处理的消息。将作为JSON对象发送。
sessionId?
请求的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。
返回值
void
抛出
如果给定的sessionId不存在。
handlePause()
handlePause: (
sessionId?) =>void
处理暂停播放的请求。当应用通过交互式组件调用IPlayerClient.pause时,就会收到此调用。
应用必须实现此函数才能在与sessionId对应的VideoPlayer或AudioPlayer实例上调用pause。
参数
sessionId?
请求的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。
返回值
void
详情
在已经处于暂停状态时收到多个暂停请求不是错误,应该发出成功信号。媒体服务器应更新相应的IISessionStatus以反映新的播放状态。
抛出
如果给定的sessionId不存在。
handlePlay()
handlePlay: (
sessionId?) =>void
处理恢复或开始播放的请求。当应用通过交互式组件调用IPlayerClient.play时,就会收到此调用。
应用必须实现此函数才能在与sessionId对应的VideoPlayer或AudioPlayer实例上调用play。
参数
sessionId?
请求的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。
返回值
void
详情
如果应用已经在播放并且播放速度不正常(速度并非1.0),那么这可让播放速度恢复到正常速度。在已经处于播放状态时收到多个播放请求不是错误,应该发出成功信号。媒体服务器应更新相应的IISessionStatus以反映新的播放状态。
抛出
如果给定的sessionId不存在。
handleSeek()
handleSeek: (
position,isRelative?,sessionId?) =>void
处理搜寻到给定播放位置的请求。当应用通过交互式组件调用IPlayerClient.seek时,就会收到此调用。
应用必须实现此函数才能更改与sessionId对应的VideoPlayer或AudioPlayer实例的currentTime。
参数
position
number
要跳转的播放位置,要么相对于当前播放位置 (isRelative = true);要么相对于媒体的播放起点,其中0表示媒体的播放起点 (isRelative = false)。
isRelative?
boolean
提供的位置是当前播放位置的相对位置 (isRelative = true),还是媒体中的绝对位置 (isRelative = false)。默认值为false。
sessionId?
请求的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。
返回值
void
详情
媒体服务器应更新相应的IISessionStatus以反映新的播放位置。
抛出
如果给定的sessionId不存在。
handleSetActiveTrack()
handleSetActiveTrack: (
trackType,trackId,sessionId?) =>void
处理设置媒体播放活跃轨道的请求。当应用通过交互式组件调用IPlayerClient.setActiveTrack时,就会收到此调用。
应用必须实现此函数才能在MSE播放器实例上按ID设置音频、视频或文本轨道。
参数
trackType
要设置为活跃的轨道的类型。
trackId
string
要设置为活跃的轨道的轨道ID。
sessionId?
请求的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。
返回值
void
详情
媒体会话应更新其IISessionStatus以反映新播放状态。
抛出
如果给定的sessionId不存在。
handleSetMute()
handleSetMute: (
isMuted,sessionId?) =>void
处理播放静音请求。当应用通过交互式组件调用IPlayerClient.setMute时,就会收到此调用。
应用必须实现此函数才能在与sessionId对应的VideoPlayer或AudioPlayer实例上设置muted。
参数
isMuted
boolean
如果为true,则应将媒体静音;
sessionId?
请求的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。
返回值
void
详情
媒体服务器应更新相应的IISessionStatus以反映新的播放状态。
抛出
如果给定的sessionId不存在。
handleSetPlaybackRate()
handleSetPlaybackRate: (
playbackRate,sessionId?) =>void
处理设置媒体播放速度的请求。当应用通过交互式组件调用IPlayerClient.setPlaybackRate时,就会收到此调用。
应用必须实现此函数才能在与sessionId对应的VideoPlayer或AudioPlayer实例上设置playbackRate。
参数
playbackRate
number
要设置的播放速度,例如0.25、0.5、2.0等
sessionId?
请求的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。
返回值
void
详情
媒体会话应更新其IISessionStatus以反映新播放状态。
抛出
如果给定的sessionId不存在。
handleSetTextView()
handleSetTextView: (
handle,sessionId?) =>void
处理设置文本视图的请求。当应用通过交互式组件调用IPlayerClient.setTextView时,就会收到此调用。
应用必须实现此函数才能在与sessionId对应的VideoPlayer实例上调用setCaptionViewHandle。
参数
handle
共享表面的标识符。
sessionId?
设置字幕界面的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。
返回值
void
抛出
如果给定的sessionId不存在。
handleSetVideoView()
handleSetVideoView: (
handle,sessionId?) =>void
处理设置视频视图的请求。当应用通过交互式组件调用IPlayerClient.setVideoView时,就会收到此调用。
参数
handle
共享表面的标识符。
sessionId?
设置视频界面的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。
应用必须实现此函数才能在与sessionId对应的VideoPlayer实例上调用setSurfaceHandle。
返回值
void
抛出
如果给定的sessionId不存在。
handleSetVolume()
handleSetVolume: (
volume,sessionId?) =>void
处理设置媒体播放音量的请求。当应用通过交互式组件调用IPlayerClient.setVolume时,就会收到此调用。
应用必须实现此函数才能在与sessionId对应的VideoPlayer或AudioPlayer实例上设置volume。
参数
volume
number
要设置的音量,在0.0到1.0范围之间。
sessionId?
请求的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。
返回值
void
详情
媒体会话应更新其IISessionStatus以反映新播放状态。
抛出
如果给定的sessionId不存在。
handleStartBufferedRangesUpdates()
handleStartBufferedRangesUpdates: (
sessionId?) =>void
当应用针对来自交互式组件的sessionId进行至少一次IPlayerClient.registerBufferedRangesListener调用时,就会收到此调用。
应用必须通过从服务组件调用IPlayerServer.updateBufferedRanges API,开始发送与sessionId相对应的缓冲范围更新。
参数
sessionId?
请求的目标会话ID。如果未指定,则目标会话由服务器决定。
返回值
void
抛出
如果给定的sessionId不存在。
handleStartErrorUpdates()
handleStartErrorUpdates: (
sessionId?) =>void
当应用针对来自交互式组件的sessionId进行至少一次IPlayerClient.registerErrorListener调用时,就会收到此调用。
应用可以通过从服务组件调用与sessionId对应的IPlayerServer.sendError API,开始以JSON对象的形式发送IPlayerSessionError。
参数
sessionId?
请求的目标会话ID。如果未指定,则目标会话由服务器决定。
返回值
void
抛出
如果给定的sessionId不存在。
handleStartMessageUpdates()
handleStartMessageUpdates: (
sessionId?) =>void
当应用针对来自交互式组件的sessionId进行至少一次IPlayerClient.registerMessageListener调用时,就会收到此调用。
应用可以通过从服务组件调用与sessionId对应的IPlayerServer.sendMessage API,开始以JSON对象的形式发送自定义消息。
参数
sessionId?
请求的目标会话ID。如果未指定,则目标会话由服务器决定。
返回值
void
抛出
如果给定的sessionId不存在。
handleStartStatusUpdates()
handleStartStatusUpdates: (
sessionId?) =>void
当应用针对来自交互式组件的sessionId进行至少一次IPlayerClient.registerStatusListener调用时,就会收到此调用。
应用必须通过从服务组件调用IPlayerServer.updateStatus API,开始发送与sessionId相对应的播放器会话状态更新。
参数
sessionId?
请求的目标会话ID。如果未指定,则目标会话由服务器决定。
返回值
void
抛出
如果给定的sessionId不存在。
handleStartTrackUpdates()
handleStartTrackUpdates: (
sessionId?) =>void
当应用针对来自交互式组件的sessionId进行至少一次IPlayerClient.registerTrackListener调用时,就会收到此调用。
应用必须通过从服务组件调用IPlayerServer.addTrack或IPlayerServer.removeTrack API,开始发送与sessionId相对应的播放器会话轨道更新。
参数
sessionId?
请求的目标会话ID。如果未指定,则目标会话由服务器决定。
返回值
void
抛出
如果给定的sessionId不存在。
handleStopBufferedRangesUpdates()
handleStopBufferedRangesUpdates: (
sessionId?) =>void
当应用针对来自交互式组件的sessionId取消订阅所有IPlayerSessionBufferedRangesListener实例时,就会收到此调用。
应用必须停止从服务组件发送与sessionId相对应的缓冲范围更新。
参数
sessionId?
请求的目标会话ID。如果未指定,则目标会话由服务器决定。
返回值
void
抛出
如果给定的sessionId不存在。
handleStopErrorUpdates()
handleStopErrorUpdates: (
sessionId?) =>void
当应用针对来自交互式组件的sessionId取消订阅所有IPlayerSessionErrorListener实例时,就会收到此调用。因此,服务组件不应发送任何与sessionId相对应的错误,因为这些消息没有可用的接收者。
参数
sessionId?
请求的目标会话ID。如果未指定,则目标会话由服务器决定。
返回值
void
抛出
如果给定的sessionId不存在。
handleStopMessageUpdates()
handleStopMessageUpdates: (
sessionId?) =>void
当应用针对来自交互式组件的sessionId取消订阅所有IPlayerSessionTrackListener实例时,就会收到此调用。因此,服务组件不应发送任何与sessionId相对应的消息,因为这些消息没有可用的接收者。
参数
sessionId?
请求的目标会话ID。如果未指定,则目标会话由服务器决定。
返回值
void
抛出
如果给定的sessionId不存在。
handleStopStatusUpdates()
handleStopStatusUpdates: (
sessionId?) =>void
当应用针对来自交互式组件的sessionId取消订阅所有IPlayerSessionStatusListener实例时,就会收到此调用。
应用必须停止从服务组件发送与sessionId相对应的播放器会话状态更新。
参数
sessionId?
请求的目标会话ID。如果未指定,则目标会话由服务器决定。
返回值
void
抛出
如果给定的sessionId不存在。
handleStopTrackUpdates()
handleStopTrackUpdates: (
sessionId?) =>void
当应用针对来自交互式组件的sessionId取消订阅所有IPlayerSessionTrackListener实例时,就会收到此调用。
应用必须停止从服务组件发送与sessionId相对应的播放器会话轨道更新。
参数
sessionId?
请求的目标会话ID。如果未指定,则目标会话由服务器决定。
返回值
void
抛出
如果给定的sessionId不存在。
handleUnload()
handleUnload: (
sessionId?) =>void
从媒体会话中卸载内容,以响应来自交互式组件的IPlayerClient.unload调用。
应用必须实现此函数才能针对与给定sessionId关联的播放器会话释放MediaPlayer和媒体源扩展 (MSE) 资源。
参数
sessionId?
要卸载的内容的会话ID。如果未提供,PlayerServer将决定如何处理请求。
返回值
void
抛出
如果给定的sessionId不存在。
handleUnloadSync()?
optionalhandleUnloadSync: (timeoutMsec,sessionId?) =>IUnloadSyncStatus
从媒体会话中卸载内容,以响应来自交互式组件的IPlayerClient.unloadSync调用。
应用必须实现此函数才能针对与给定sessionId关联的播放器会话同步释放MediaPlayer和媒体源扩展 (MSE) 资源。对于W3CMedia MediaPlayer实例,使用deinitializeSync API。
参数
timeoutMsec
number
unloadSync API允许的最长执行时间(以毫秒为单位)。最小值为1000,最大值为5000。
sessionId?
要卸载的内容的会话ID。如果未提供,PlayerServer将决定如何处理请求。
返回值
与sessionId对应的媒体播放器实例的同步取消初始化状态。
抛出
如果给定的sessionId不存在。
Last updated: 2025年10月2日

