Player
是回放录像的实例对象,通过 WhiteWebSdk
的实例构造(参考《构造 Room 与 Player 对象》)。它实现了 Displayer
接口(参考《Displayer》),具体定义如下。
interface Player extends Displayer {
readonly roomUUID: string;
readonly slice?: string;
readonly isPlayable: boolean;
readonly phase: PlayerPhase;
readonly state: PlayerState;
readonly progressTime: number;
readonly timeDuration: number;
readonly framesCount: number;
readonly beginTimestamp: number;
playbackSpeed: number;
play(): void;
pause(): void;
stop(): void;
seekToProgressTime(progressTime: number): void;
setObserverMode(observerMode: ObserverMode): void;
}
当前录像所属的房间 uuid
,这是房间的唯一识别符。
当前录像片段的 uuid
。会随着播放进度变化而变化,你可以通过监听 onSliceChanged
事件来获取变化回调。在首帧加载出来之前,该值为 undefined
。
当前是否可以播放。即调用 player.play()
是否可以立即播放,而不是缓存。
房间状态,其类型 PlayerPhase
定义如下。
enum PlayerPhase {
// 正在等待首帧加载
WaitingFirstFrame = "waitingFirstFrame",
// 正在播放
Playing = "playing",
// 暂停
Pause = "pause",
// 已停止播放
Stopped = "stop",
// 播放到内容的尽头
Ended = "ended",
// 正在缓存
Buffering = "buffering",
}
你可以通过监听 onPhaseChanged
事件来获取状态变化回调。
业务状态,其类型为 PlayerState
。阅读 《房间与回放的业务状态管理》 、《房间业务状态管理》 以了解更多。
当前播放进度,单位是毫秒。其中 0
表示播放内容的开端。最大不能超过 player.timeDuration
。
当前录像总时长,单位是毫秒。player.progressTime
的值不会超过它。
当前录像的总帧数。
当前录像的开始时间戳,是 Unix 时间,单位是毫秒。
播放速度,默认值是 1.0
。表明以几倍速率播放录像内容。可修改。
play(): void;
开始播放。
pause(): void;
暂停。
stop(): void;
停止。player.phase
会变为 PlayerPhase.Stopped
,此后 player
实例将拒绝一切业务操作。
seekToProgressTime(progressTime: number): void;
切换进度。该值会改变 player.progressTime
的值。由于该方法需要发起网络请求,因此改变不会立即生效。在等待过程中 player.phase
会处于 PlayerPhase.Buffering
状态。
setObserverMode(observerMode: ObserverMode): void;
切换观察者模式。可参考《observermode|房间与回放的业务状态管理》。