【发布时间】:2017-12-21 15:05:35
【问题描述】:
我有以下代码在 Android 设备上加载本地视频并将其放置在 HTML5 Video src 标记中:
Javascript 代码:
var path = 'file:///data/data/com.myapp.app/files/';
var src = path+'Intro.mp4';
var video = $("#introVideo");
video.find("source").attr("src", src);
HTML 代码:
<video id="introVideo" width="100%" poster="poster.jpg"controls>
<source src="" type="video/mp4">
</video>
这不适用于 Android 设备。但是,如果我不使用上面的 javascript 代码而只使用如下视频路径,一切正常:
这行得通:
<video id="introVideo" width="100%" poster="poster.jpg"controls>
<source src="file:///data/data/com.myapp.app/files/Intro.mp4" type="video/mp4">
</video>
当我alert(src); 时,我得到的确切 URL 是:
file:///data/data/com.myapp.app/files/Intro.mp4
这意味着视频存在于本地,并且我上面的 Javascript 代码存在问题。但我不明白问题是什么!
有人可以就这个问题提出建议吗?
提前致谢。
编辑:
上面的代码是这样触发的:
$(document).on('click','.backit', function(e){
var path = 'file:///data/data/com.myapp.app/files/';
var src = path+'Intro.mp4';
var video = $("#introVideo");
video.find("source").attr("src", src);
});
编辑:
进一步调查,我发现当我使用上面的 javascript 代码时,视频的 src 标签设置正确,但是,当我动态设置其 src 标签时,视频无法播放,这很奇怪。
【问题讨论】:
-
是你的js在
ready块中还是放在你的html下面,以确保它在html渲染之前不会运行? -
@chiliNUT,上面的javascript只会在按钮点击时触发,并且按钮只有在html渲染完成后很长时间才可用。
-
那么也许你可以提供一个更完整的代码示例
-
@chiliNUT,这就是我拥有的所有代码......唯一的区别是我没有将它包裹在 $(document).on('click','.backit', function (e){......});
-
和之前一样的问题,你是否在渲染之前将点击事件绑定到
.backit
标签: javascript android jquery html video