Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带html的javascript<;视频>;加载();play()函数未触发_Html_Video - Fatal编程技术网

带html的javascript<;视频>;加载();play()函数未触发

带html的javascript<;视频>;加载();play()函数未触发,html,video,Html,Video,我一直在用HTML构建一个定制的视频播放器,但我遇到了一个问题,我怀疑这是我的javascript造成的,经过几个小时的努力,我承认失败了 问题是,从我所看到的情况来看,我的'loadChapter()'函数运行正常,但当第二次启动时,video.load()和video.play()方法似乎停止工作 我不能包括一个链接到实际的页面,由于与客户的披露协议,这里是审查代码 HTML: 您的浏览器不支持HTML视频。 javascript(使用jQuery): $(文档).re

我一直在用HTML构建一个定制的视频播放器,但我遇到了一个问题,我怀疑这是我的javascript造成的,经过几个小时的努力,我承认失败了

问题是,从我所看到的情况来看,我的'loadChapter()'函数运行正常,但当第二次启动时,video.load()和video.play()方法似乎停止工作

我不能包括一个链接到实际的页面,由于与客户的披露协议,这里是审查代码

HTML:


您的浏览器不支持HTML视频。
javascript(使用jQuery):

$(文档).ready(函数(){
var shell=“#shell”;
var objH=$(shell.outerHeight();
汽车制造商(壳牌);
$(窗口)。调整大小(函数(){
汽车制造商(壳牌);
});
功能自动边缘(obj){
var winH=$(window.height();
如果(winH>=objH){
var topMargin=(winH/2)-(objH/2);
$(obj).css('marginTop',topMargin);
};
};
//获取视频文件
var video=document.getElementById('video'))
var filepath=“video/”;
var=新数组();
var totalChapters=$(“#chapters li”)。长度;
对于(i=0;i=0){
本章——;
加载章节(当前章节);
};
});
}))

视频标记的“海报”和dom中的标记都是通过loadChapter()脚本正确加载的,但我很难弄清楚为什么视频只加载和播放一次


这里有什么我遗漏的吗?

这个问题的解决方案比不正确的代码更神秘,当我在Firefox中测试视频时,它工作正常,当文件在嵌套标记中引用时,webkit浏览器似乎在video.load()方法上有一些问题

我通过编写一条条件语句并将新视频的src直接附加到标记本身来解决这个问题:

function loadChapter(i) {
    //$('#video').attr('poster', chapters[i][0]);

    if($.browser.safari || $.browser.msie) {
        $('#video').attr('src', chapters[i][1]);
    } else {
        $('#video').attr('src', chapters[i][2]);
    };

    video.load();
    video.play();
};
$(document).ready(function(){

var shell = "#shell";
var objH = $(shell).outerHeight();

autoMargins(shell);
$(window).resize(function() {
    autoMargins(shell);
});

function autoMargins(obj){
    var winH = $(window).height();
    if (winH >= objH ) {
        var topMargin = (winH/2) - (objH/2);
        $(obj).css('marginTop', topMargin);
    };
};

// GET VIDEO FILES
var video = document.getElementById('video')
var filepath = "video/";
var chapters = new Array();
var totalChapters = $('#chapters li').length;
for( i=0; i < totalChapters; i++ ) {
    chapters[i] = new Array();
    filename = $('#chapters li a:eq(' + i + ')').attr('href');
    for( j=0; j < 3; j++ ) {
        chapters[i][0] = filepath + filename + ".png";
        chapters[i][1] = filepath + filename + ".mp4";
        chapters[i][2] = filepath + filename + ".webm";
    };
};

// CHAPTER CONTROLS
var currentChapter = 0;
$('#chapters li a').click(function(e) {
    e.preventDefault();
    currentChapter = $(this).parent().index();
    loadChapter(currentChapter);
});


var mp4 = document.getElementById("mp4");
var webm = document.getElementById("webm");

function loadChapter(i) {
    $('#video').attr('poster', chapters[i][0]);
    mp4.setAttribute("src", chapters[i][1]);
    webm.setAttribute("src", chapters[i][2]);

    video.load();
    video.play();
};

$('#play').click(function(e) {
    e.preventDefault();
    $('#play').toggle();
    $('#pause').toggle();
});

$('#pause').click(function(e) {
    e.preventDefault();
    $('#play').toggle();
    $('#pause').toggle();
});

$('#next').click(function(e) {
    e.preventDefault();
    if (currentChapter < totalChapters ) {
        currentChapter++;
        loadChapter(currentChapter);
    };
});

$('#prev').click(function(e) {
    e.preventDefault();
    if (currentChapter >= 0 ) {
        currentChapter--;
        loadChapter(currentChapter);
    };
});
function loadChapter(i) {
    //$('#video').attr('poster', chapters[i][0]);

    if($.browser.safari || $.browser.msie) {
        $('#video').attr('src', chapters[i][1]);
    } else {
        $('#video').attr('src', chapters[i][2]);
    };

    video.load();
    video.play();
};