在HTML5视频中,当视频的隐藏字幕打开或关闭时,如何调用函数?
我基本上只想在关闭或关闭隐藏式字幕时设置jQuery cookie,以便其他页面上的视频可以默认为用户之前选择的任何内容。
我知道如何做到这一切,我只需要能够在用户打开或关闭隐藏式字幕时调用函数。它必须类似onvolumechange或onpause等,我似乎无法找到它是什么。感谢。
答案 0 :(得分:1)
更新:忽略我以前的答案(如果对所涉及的逻辑有任何用处,请留下以下)...结果是有一个事件显示字幕轨道的更改时间:
<video id="video" controls="controls" muted preload="metadata">
<source src="BigBuck.m4v" type="video/mp4" />
<track src="entrack.vtt" label="English Captions" kind="subtitles" srclang="en-us" >
</video>
<script type="text/javascript">
function captionStatus() {
console.log("Mode:-->" + track.mode)
}
var video = document.querySelector('#video');
var tracks = video.textTracks; // one for each track element
var track = video.textTracks[0]; // corresponds to the first track element. If more than one will need to adapt code to select the right one
tracks.addEventListener("change", captionStatus, false);
</script>
[原创,不是很有帮助,回答)
似乎不是一个事件,你可以添加一个专门绑定到 CC 按钮的监听器,但是,你可以做的是设置一个计时器(或使用绑定到视频播放头的事件),检查textTrack.mode
视频元素并使用:
var videoElement = document.querySelector("video");
var textTracks = videoElement.textTracks; // one for each track element
var textTrack = textTracks[0]; // corresponds to the first track element
var kind = textTrack.kind // e.g. "subtitles"
var mode = textTrack.mode // e.g. "disabled", hidden" or "showing"
...
video.addEventListener('timeupdate',function(){
// action based on video.textTracks[0].mode;
},false);