页面播放控制
大部分场景都是在页面中进行播放,所以需要在页面生命周期函数中进行播放控制。
关于页面声明周期
一、播放常用方法简介
1、暂停播放操作(不销毁播放器)
start
开始播放pause
暂停播放
调用start
开始视频播放后,调用pause
会停止播放。 调用pause
暂停视频播放后,调用start
会继续播放。
2、停止播放操作(毁播放器)
resume
恢复播放stop
停止播放
调用stop
停止视频播放后,调用resume
会重新播放。
3、播放资源回收和重置操作
reset
重置资源release
回收资源
不需要播放器的时候,调用reset
和release
方法进行资源的回收和重置。
注意
- 如果离开当前页面,跳转其他页面进行交互操作,则需要停止(调用
stop
方法)当前页面的播放。 - 如果一直在当前页面进行交互操作,一般使用暂停(调用
pause
方法)播放。如果有需要则使用停止播放。
二、页面声明周期播放控制
1、页面onESCreate
生命周期中进行播放器初始化并进行开始播放。
以ESVideoPlayer
为例:
function onESCreate() {
//1、初始化播放
videoPlayer.value?.initialize()
}
const onPlayerInitialized = (playerType) => {
const mediaSource: ESMediaSource = {
uri: 'http://extcdn.hsrc.tv/channelzero/2024/02/05/d477660a-3eb6-4c7f-b82b-0b61c035505c.mp4'
}
const mediaSourceList: ESMediaSourceList = {
index: 0,
list: [mediaSource]
}
//2、初始化完毕后,调用播放方法
videoPlayer.value?.playMediaSourceList(mediaSourceList)
//3、开始播放
videoPlayer.value?.start(0)
}
2、页面onESPause
或者onESStop
生命周期中停止播放。
function onESStop() {
stopDurationTimer()
stopProgressTimer()
//停止播放
videoPlayer.value?.stop()
isPageStopped = true
}
3、页面onESDestroy
生命周期中重置回收播放资源
function onESStop() {
//1、重置播放资源
videoPlayer.value?.reset()
//2、回收播放资源
videoPlayer.value?.release()
}
4、页面onESResume
生命周期中恢复播放
function onESResume() {
//1、如果页面停止后并且恢复后
if (isPageStopped) {
//2、恢复播放
videoPlayer.value?.resume()
}
isPageStopped = false
}
注意:调用 resume 恢复播放时,如果需要从上次播放的位置继续播放,则播放的时候需要开启定时器主动调用 getCurrentPosition 方法获取视频的播放进度。