現在、Safari で HTML5 ビデオ イベントの問題が発生しています。私は自分のページで 1 つのビデオを再生しています。ビデオが正しく読み込まれ、再生されます。ただし、play イベントは常に発生するとは限りません。ユーザーの場合:
- クリック再生
- 動画を最後まで見る (終了したイベントが発生する)
- クリックしてもう一度再生
再生イベントは、2 回目のクリックでは発生しません。その時点で映画を一時停止/再生すると、正しいイベントが発生します。
動画が完了し、ユーザーがもう一度再生を押した場合、動画タグの再生イベントを発生させるにはどうすればよいですか?
drawVidPlayer は、ページ レンダリングの一部としてビデオ インデックスと共に呼び出されます。
function drawVidPlayer(vindex){
var turl=vidList[vindex]['thumbUrl'];
var vurl=vidList[vindex]['url'];
var valias=vidList[vindex]['type'];
destroyVidPlayer();
$('#mediaspot').css('backgroundColor', '#000000');
$('#mediaspot').show();
$('#mediaspot').html('<video controls="controls" id="twnvideo" poster="'+turl+'" style="height:225px; width:460px;"><source src="'+vurl+'" type="video/ogg" /><source src="'+vurl+'" type="video/mp4" /><source src="'+vurl+'" type="video/webm" />Your browser does not support the video tag.</video>').appendTo('#wrap_media_vod');
var velem=document.getElementsByTagName('video')[0];
velem.addEventListener('play', initVidTimer, false);
velem.addEventListener('pause', killVidTimer, false);
velem.addEventListener('ended', killVidTimer, false);
}
function destroyVidPlayer(){
var velem=document.getElementsByTagName('video')[0];
if(velem!=undefined){
velem.removeEventListener('play', initVidTimer);
velem.removeEventListener('pause', killVidTimer);
velem.removeEventListener('ended', killVidTimer);
}
$('#mediaspot').empty();
$('#mediaspot').html('');
}
function initVidTimer(){
if(activityTimer==null){
external.OnUserActivity(19);
activityTimer=setInterval(function(){
external.WriteLog('activity timer running');
external.OnUserActivity(19);
}, 5000);
}
}
function killVidTimer(){
clearInterval(activityTimer);
activityTimer=null; // Kill keepAlive timer
var velem=document.getElementsByTagName('video')[0];
external.WriteLog(velem.ended);
}