feat(vap播放组件): 加了一层底层 video 强制设置:显式写入 video.playsInline = true、playsinline、webkit-playsinline、x5-playsinline
This commit is contained in:
parent
287e48174e
commit
082d973f13
@ -96,6 +96,27 @@ let playToken = 0
|
||||
const teleportToBody = computed(() => props.mode === 'overlay')
|
||||
const resolvedSrc = computed(() => resolveProtectedAssetUrl(props.src))
|
||||
|
||||
function enforceVideoPlaybackAttributes(video, shouldMute) {
|
||||
if (!video) {
|
||||
return
|
||||
}
|
||||
|
||||
video.playsInline = true
|
||||
video.setAttribute('playsinline', '')
|
||||
video.setAttribute('webkit-playsinline', '')
|
||||
video.setAttribute('x5-playsinline', '')
|
||||
|
||||
if (shouldMute) {
|
||||
video.muted = true
|
||||
video.defaultMuted = true
|
||||
video.volume = 0
|
||||
video.setAttribute('muted', '')
|
||||
} else {
|
||||
video.defaultMuted = false
|
||||
video.removeAttribute('muted')
|
||||
}
|
||||
}
|
||||
|
||||
function destroyPlayer() {
|
||||
if (player) {
|
||||
player.destroy()
|
||||
@ -177,6 +198,14 @@ async function startPlay() {
|
||||
...props.vapData,
|
||||
})
|
||||
|
||||
enforceVideoPlaybackAttributes(player?.video, props.mute)
|
||||
player?.video?.addEventListener('loadedmetadata', () => {
|
||||
enforceVideoPlaybackAttributes(player?.video, props.mute)
|
||||
})
|
||||
player?.video?.addEventListener('canplay', () => {
|
||||
enforceVideoPlaybackAttributes(player?.video, props.mute)
|
||||
})
|
||||
|
||||
player.on('ended', handleEnded)
|
||||
player.on('playing', () => {
|
||||
loading.value = false
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user