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

