Jquery移动单页应用+视频+动态变化视频

时间:2012-08-28 07:02:10

标签: javascript jquery-mobile html5-video

有没有人找到一种强大的方法来动态更改视频元素的来源并使其在Iphone上运行?我的测试在Chrome中运行良好,但我不能让它始终如一地工作。欢迎任何有关策略或播放器的建议,因此它适用于任何设备。

我有一个视频元素:

<video id="player1" width="320" height="240" preload controls>
    <source src="http://dev.swinginsam.com/_files/testvid_01.mp4" />
    <source src="http://dev.swinginsam.com/_files/testvid_01.webm" type='video/webm; codecs="vp8, vorbis"' />
    <source src="http://dev.swinginsam.com/_files/testvid_01.ogv" type='video/ogg; codecs="theora, vorbis"' />
    <object width="320" height="240" type="application/x-shockwave-flash"
    data="flowplayer-3.2.1.swf">
        <param name="movie" value="flowplayer-3.2.1.swf" />
        <param name="allowfullscreen" value="true" />
        <param name="flashvars" value='config={"clip": {"url":     "http://dev.swinginsam.com/_files/testvid_01.mp4", "autoPlay":false, "autoBuffering":true}}' />
         <p>Download video as
            <a href="http://dev.swinginsam.com/_files/testvid_01.mp4">MP4</a>,
            <a href="http://dev.swinginsam.com/_files/testvid_01.webm">WebM</a>, or <a href="http://dev.swinginsam.com/_files/testvid_01.ogv">Ogg</a>.</p>
    </object>
</video>

我使用mediaelementjs的播放器初始化代码片段 - 它的工作原理是播放器被正确初始化并设置皮肤并适用于第一个视频:

$('#one').live("pageinit", function (event, data) {

 var player1 = new MediaElementPlayer('#player1',{});

 $('#button1').click(function(){
    player1.pause();
    player1.setSrc([
       {src:"http://dev.swinginsam.com/_files/testvid_01.mp4"},
       {src:"http://dev.swinginsam.com/_files/testvid_01.webm", type:'video/webm; codecs="vp8, vorbis"'},
       {src:"http://dev.swinginsam.com/_files/testvid_01.ogv", type:'video/ogg; codecs="theora, vorbis"'}
 ]);



 $('#button2').click(function(){
     player1.pause();
     player1.setSrc([
         {src:"http://dev.swinginsam.com/_files/testvid_02.mp4"},
         {src:"http://dev.swinginsam.com/_files/testvid_02.webm", type:'video/webm; codecs="vp8, vorbis"'},
         {src:"http://dev.swinginsam.com/_files/testvid_02.ogv", type:'video/ogg; codecs="theora, vorbis"'}
      ]);
      player1.load();
 });
});

按下按钮开始更改信号源时,问题就开始了。它适用于Chrome,但Safari只会继续播放第一个视频。

1 个答案:

答案 0 :(得分:0)

您缺少});的右括号$('#button1').click(function(){。 javascript应该是:

$('#one').live("pageinit", function(event, data) {

    var player1 = new MediaElementPlayer('#player1', {});

    $('#button1').click(function() {
        player1.pause();
        player1.setSrc([
            {
            src: "http://dev.swinginsam.com/_files/testvid_01.mp4"},
        {
            src: "http://dev.swinginsam.com/_files/testvid_01.webm",
            type: 'video/webm; codecs="vp8, vorbis"'},
        {
            src: "http://dev.swinginsam.com/_files/testvid_01.ogv",
            type: 'video/ogg; codecs="theora, vorbis"'}
        ]);

    });

    $('#button2').click(function() {
        player1.pause();
        player1.setSrc([
            {
            src: "http://dev.swinginsam.com/_files/testvid_02.mp4"},
        {
            src: "http://dev.swinginsam.com/_files/testvid_02.webm",
            type: 'video/webm; codecs="vp8, vorbis"'},
        {
            src: "http://dev.swinginsam.com/_files/testvid_02.ogv",
            type: 'video/ogg; codecs="theora, vorbis"'}
        ]);
        player1.load();
    });

});​