如何在ipad中更新视频src

时间:2012-10-24 14:03:42

标签: jquery iphone ipad video

在我的网页上,我有视频,它有不同的3个来源。我需要在加载页面时更改视频src。因为我正在使用这个功能,但我无法在ipad中获得更新,但firefox工作正常。

jquery的:

$('#task2ResultVideo source').each(function (n,s) {
       $('#task2ResultVideo').get(0).pause();
       $(this).attr('src',$(this).attr('src').replace('Task_2.4a_Host_treated', task2RslVideo));
       $(this).parents('video').get(0).load();
    } )

HTML:

<video id="task2ResultVideo" autobuffer poster="img/task2-results-host-poster.jpg">
                        <source src="Video/webm/Task_2.4a_Host_treated.webm" type="video/webm" />
                        <source src="Video/ogv/Task_2.4a_Host_treated.theora.ogv" type="video/ogg" />
                        <source src="Video/MP4/Task_2.4a_Host_treated.mp4" type="video/mp4" />
                    </video>

我非常困惑,任何人帮助我?

我试过这个,src更新,但视频没有加载,老视频播放.. Jquery的:

  $('#task2ResultVideo source').each(function (n,s) {
       $('#task2ResultVideo')[0].pause();
       $(this).attr('src',$(this).attr('src').replace('Task_2.4a_Host_treated', task2RslVideo));
       setTimeout(function(){
        $('#task2ResultVideo').load();
        },1000)
       alert($(this).attr('src').replace('Task_2.4a_Host_treated', task2RslVideo));
    } )

1 个答案:

答案 0 :(得分:2)

在Apple Developer网站上取消“顺序更换媒体”: http://developer.apple.com/library/safari/#documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/ControllingMediaWithJavaScript/ControllingMediaWithJavaScript.html#//apple_ref/doc/uid/TP40009523-CH3-SW1

在该文档中,Safari似乎在视频标签上寻找src,而不是在其下面的<source/>标签中。

作为一个简单的测试,试着看看它是否有效:

// obviously, wrap this in a function... this is simply for testing,
// as you'll want to refine this for use by other browsers as well,
// if this works
var $vid = $("#task2ResultVideo");
var src = "Video/MP4/" + task2RslVideo + ".mp4";
$vid.attr("src", src);
$vid.get(0).load();
$vid.get(0).play();

很想知道你得到了什么结果,因为这似乎是一个相当普遍的问题(我在Google搜索中看到了很多与此相关的问题)。

更新......当然会失败,因为没有设置,呃...我的坏。但实际上,你的替换也很脆弱,因为它会第一次工作(因为它知道'Task_2.4a_Host_treated'存在),但在那之后,它将不再有匹配。你应该从你知道的组件中构建你的src字符串,而不是在这种情况下使用replace。