as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

IPlayerServerHandler

IPlayerServerHandler

一个处理程序的接口,用于提供PlayerServer的服务逻辑。

属性

handleClearTextView()

handleClearTextView: (sessionId?) => void

处理清除文本视图的请求。当应用通过交互式组件调用IPlayerClient.clearTextView时,就会收到此调用。

应用必须实现此函数才能在与sessionId对应的VideoPlayer实例上调用clearCaptionViewHandle

参数

sessionId?

IPlayerSessionId

用于清除字幕界面的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。

返回值

void

抛出

如果给定的sessionId不存在。


handleClearVideoView()

handleClearVideoView: (sessionId?) => void

处理清除文本视图的请求。当应用通过交互式组件调用IPlayerClient.clearVideoView时,就会收到此调用。

应用必须实现此函数才能在与sessionId对应的VideoPlayer实例上调用clearSurfaceHandle

参数

sessionId?

IPlayerSessionId

用于清除文本视图的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。

返回值

void

抛出

如果给定的sessionId不存在。


handleGetCurrentPosition()

handleGetCurrentPosition: (sessionId?) => number

处理对交互式组件的请求,以获取媒体播放的当前播放位置。当应用通过交互式组件调用IPlayerClient.getCurrentPosition时,就会收到此调用。

应用必须实现此函数才能从与sessionId对应的AudioPlayer或VideoPlayer实例中获取currentTime,然后应用必须使用表示当前播放位置的number(以秒为单位)来解析Promise。

参数

sessionId?

IPlayerSessionId

请求的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。

返回值

number

sessionId对应的媒体播放会话的当前播放位置。

抛出

如果给定的sessionId不存在。


handleLoad()

handleLoad: (mediaInfo, loadParams?, sessionId?) => void

处理通过URL加载内容的请求。当应用通过交互式组件调用IPlayerClient.load时,就会收到此调用。

对于与sessionId相对应的播放器会话,应用必须实现此函数,才能使用mediaInfoloadParams中提供的字段值来初始化MediaPlayer实例。

参数

mediaInfo

IPlayerSessionMediaInfo

这是一个对象,用于描述加载媒体内容所必需的URL和HTTP标头。

loadParams?

IPlayerSessionLoadParams

通过URL加载内容所需的参数。

sessionId?

IPlayerSessionId

加载内容的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。

返回值

void

抛出

如果给定的sessionId不存在。


handleMessage()

handleMessage: (message, sessionId?) => void

处理从交互式组件接收自定义消息的请求。应用可以使用message对象来执行自定义操作。当应用通过交互式组件调用IPlayerClient.sendMessage时,就会收到此调用。

应用可以实现此函数来处理服务组件中的自定义操作。

参数

message

any

要处理的消息。将作为JSON对象发送。

sessionId?

IPlayerSessionId

请求的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。

返回值

void

抛出

如果给定的sessionId不存在。


handlePause()

handlePause: (sessionId?) => void

处理暂停播放的请求。当应用通过交互式组件调用IPlayerClient.pause时,就会收到此调用。

应用必须实现此函数才能在与sessionId对应的VideoPlayer或AudioPlayer实例上调用pause

参数

sessionId?

IPlayerSessionId

请求的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。

返回值

void

详情

在已经处于暂停状态时收到多个暂停请求不是错误,应该发出成功信号。媒体服务器应更新相应的IISessionStatus以反映新的播放状态。

抛出

如果给定的sessionId不存在。


handlePlay()

handlePlay: (sessionId?) => void

处理恢复或开始播放的请求。当应用通过交互式组件调用IPlayerClient.play时,就会收到此调用。

应用必须实现此函数才能在与sessionId对应的VideoPlayer或AudioPlayer实例上调用play

参数

sessionId?

IPlayerSessionId

请求的目标会话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?

IPlayerSessionId

请求的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。

返回值

void

详情

媒体服务器应更新相应的IISessionStatus以反映新的播放位置。

抛出

如果给定的sessionId不存在。


handleSetActiveTrack()

handleSetActiveTrack: (trackType, trackId, sessionId?) => void

处理设置媒体播放活跃轨道的请求。当应用通过交互式组件调用IPlayerClient.setActiveTrack时,就会收到此调用。

应用必须实现此函数才能在MSE播放器实例上按ID设置音频、视频或文本轨道。

参数

trackType

ITrackType

要设置为活跃的轨道的类型。

trackId

string

要设置为活跃的轨道的轨道ID。

sessionId?

IPlayerSessionId

请求的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。

返回值

void

详情

媒体会话应更新其IISessionStatus以反映新播放状态。

抛出

如果给定的sessionId不存在。


handleSetMute()

handleSetMute: (isMuted, sessionId?) => void

处理播放静音请求。当应用通过交互式组件调用IPlayerClient.setMute时,就会收到此调用。

应用必须实现此函数才能在与sessionId对应的VideoPlayer或AudioPlayer实例上设置muted

参数

isMuted

boolean

如果为true,则应将媒体静音;

sessionId?

IPlayerSessionId

请求的目标会话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?

IPlayerSessionId

请求的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。

返回值

void

详情

媒体会话应更新其IISessionStatus以反映新播放状态。

抛出

如果给定的sessionId不存在。


handleSetTextView()

handleSetTextView: (handle, sessionId?) => void

处理设置文本视图的请求。当应用通过交互式组件调用IPlayerClient.setTextView时,就会收到此调用。

应用必须实现此函数才能在与sessionId对应的VideoPlayer实例上调用setCaptionViewHandle

参数

handle

IViewHandle

共享表面的标识符。

sessionId?

IPlayerSessionId

设置字幕界面的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。

返回值

void

抛出

如果给定的sessionId不存在。


handleSetVideoView()

handleSetVideoView: (handle, sessionId?) => void

处理设置视频视图的请求。当应用通过交互式组件调用IPlayerClient.setVideoView时,就会收到此调用。

参数

handle

IViewHandle

共享表面的标识符。

sessionId?

IPlayerSessionId

设置视频界面的目标会话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?

IPlayerSessionId

请求的目标会话ID。如果未指定,则由PlayerServer决定如何处理请求。

返回值

void

详情

媒体会话应更新其IISessionStatus以反映新播放状态。

抛出

如果给定的sessionId不存在。


handleStartBufferedRangesUpdates()

handleStartBufferedRangesUpdates: (sessionId?) => void

当应用针对来自交互式组件的sessionId进行至少一次IPlayerClient.registerBufferedRangesListener调用时,就会收到此调用。

应用必须通过从服务组件调用IPlayerServer.updateBufferedRanges API,开始发送与sessionId相对应的缓冲范围更新。

参数

sessionId?

IPlayerSessionId

请求的目标会话ID。如果未指定,则目标会话由服务器决定。

返回值

void

抛出

如果给定的sessionId不存在。


handleStartErrorUpdates()

handleStartErrorUpdates: (sessionId?) => void

当应用针对来自交互式组件的sessionId进行至少一次IPlayerClient.registerErrorListener调用时,就会收到此调用。

应用可以通过从服务组件调用与sessionId对应的IPlayerServer.sendError API,开始以JSON对象的形式发送IPlayerSessionError

参数

sessionId?

IPlayerSessionId

请求的目标会话ID。如果未指定,则目标会话由服务器决定。

返回值

void

抛出

如果给定的sessionId不存在。


handleStartMessageUpdates()

handleStartMessageUpdates: (sessionId?) => void

当应用针对来自交互式组件的sessionId进行至少一次IPlayerClient.registerMessageListener调用时,就会收到此调用。

应用可以通过从服务组件调用与sessionId对应的IPlayerServer.sendMessage API,开始以JSON对象的形式发送自定义消息。

参数

sessionId?

IPlayerSessionId

请求的目标会话ID。如果未指定,则目标会话由服务器决定。

返回值

void

抛出

如果给定的sessionId不存在。


handleStartStatusUpdates()

handleStartStatusUpdates: (sessionId?) => void

当应用针对来自交互式组件的sessionId进行至少一次IPlayerClient.registerStatusListener调用时,就会收到此调用。

应用必须通过从服务组件调用IPlayerServer.updateStatus API,开始发送与sessionId相对应的播放器会话状态更新。

参数

sessionId?

IPlayerSessionId

请求的目标会话ID。如果未指定,则目标会话由服务器决定。

返回值

void

抛出

如果给定的sessionId不存在。


handleStartTrackUpdates()

handleStartTrackUpdates: (sessionId?) => void

当应用针对来自交互式组件的sessionId进行至少一次IPlayerClient.registerTrackListener调用时,就会收到此调用。

应用必须通过从服务组件调用IPlayerServer.addTrackIPlayerServer.removeTrack API,开始发送与sessionId相对应的播放器会话轨道更新。

参数

sessionId?

IPlayerSessionId

请求的目标会话ID。如果未指定,则目标会话由服务器决定。

返回值

void

抛出

如果给定的sessionId不存在。


handleStopBufferedRangesUpdates()

handleStopBufferedRangesUpdates: (sessionId?) => void

当应用针对来自交互式组件的sessionId取消订阅所有IPlayerSessionBufferedRangesListener实例时,就会收到此调用。

应用必须停止从服务组件发送与sessionId相对应的缓冲范围更新。

参数

sessionId?

IPlayerSessionId

请求的目标会话ID。如果未指定,则目标会话由服务器决定。

返回值

void

抛出

如果给定的sessionId不存在。


handleStopErrorUpdates()

handleStopErrorUpdates: (sessionId?) => void

当应用针对来自交互式组件的sessionId取消订阅所有IPlayerSessionErrorListener实例时,就会收到此调用。因此,服务组件不应发送任何与sessionId相对应的错误,因为这些消息没有可用的接收者。

参数

sessionId?

IPlayerSessionId

请求的目标会话ID。如果未指定,则目标会话由服务器决定。

返回值

void

抛出

如果给定的sessionId不存在。


handleStopMessageUpdates()

handleStopMessageUpdates: (sessionId?) => void

当应用针对来自交互式组件的sessionId取消订阅所有IPlayerSessionTrackListener实例时,就会收到此调用。因此,服务组件不应发送任何与sessionId相对应的消息,因为这些消息没有可用的接收者。

参数

sessionId?

IPlayerSessionId

请求的目标会话ID。如果未指定,则目标会话由服务器决定。

返回值

void

抛出

如果给定的sessionId不存在。


handleStopStatusUpdates()

handleStopStatusUpdates: (sessionId?) => void

当应用针对来自交互式组件的sessionId取消订阅所有IPlayerSessionStatusListener实例时,就会收到此调用。

应用必须停止从服务组件发送与sessionId相对应的播放器会话状态更新。

参数

sessionId?

IPlayerSessionId

请求的目标会话ID。如果未指定,则目标会话由服务器决定。

返回值

void

抛出

如果给定的sessionId不存在。


handleStopTrackUpdates()

handleStopTrackUpdates: (sessionId?) => void

当应用针对来自交互式组件的sessionId取消订阅所有IPlayerSessionTrackListener实例时,就会收到此调用。

应用必须停止从服务组件发送与sessionId相对应的播放器会话轨道更新。

参数

sessionId?

IPlayerSessionId

请求的目标会话ID。如果未指定,则目标会话由服务器决定。

返回值

void

抛出

如果给定的sessionId不存在。


handleUnload()

handleUnload: (sessionId?) => void

从媒体会话中卸载内容,以响应来自交互式组件的IPlayerClient.unload调用。

应用必须实现此函数才能针对与给定sessionId关联的播放器会话释放MediaPlayer和媒体源扩展 (MSE) 资源。

参数

sessionId?

IPlayerSessionId

要卸载的内容的会话ID。如果未提供,PlayerServer将决定如何处理请求。

返回值

void

抛出

如果给定的sessionId不存在。


handleUnloadSync()?

optional handleUnloadSync: (timeoutMsec, sessionId?) => IUnloadSyncStatus

从媒体会话中卸载内容,以响应来自交互式组件的IPlayerClient.unloadSync调用。

应用必须实现此函数才能针对与给定sessionId关联的播放器会话同步释放MediaPlayer和媒体源扩展 (MSE) 资源。对于W3CMedia MediaPlayer实例,使用deinitializeSync API。

参数

timeoutMsec

number

unloadSync API允许的最长执行时间(以毫秒为单位)。最小值为1000,最大值为5000。

sessionId?

IPlayerSessionId

要卸载的内容的会话ID。如果未提供,PlayerServer将决定如何处理请求。

返回值

IUnloadSyncStatus

sessionId对应的媒体播放器实例的同步取消初始化状态。

抛出

如果给定的sessionId不存在。


Last updated: 2025年10月2日