[英]Getting Local HTML5 Video working in Meteor generated iOS app
我正在使用Meteor构建iOS应用,该应用要求我播放本地存储的mp4,但移动应用未显示任何视频。
我有这个模板:
<template name="video">
{{#if cordova}}
Mobile Player
<video webkit-playsinline id="example_video_1" width="50%" height="20%">
<source src="/my_vid.mp4" type="video/mp4">
</video
{{else}}
Desktop
<video control id="example_video_1" width="50%" height="20%" src="/my_vid.mp4">
</video>
{{/if}}
</template>
桌面版可以正常运行,但是在将视频播放到iOS版时遇到了问题。
这是我对应的Video.js代码:
if(Meteor.isClient)
{
Template.video.rendered = function()
{
videojs("example_video_1",
{
"controls" : true,
"autoplay": true,
"techOrder" : ["html5", "flash"],
preload: "auto"
},
function()
{
}
)
}
Template.video.helpers({
cordova: function()
{
getBlobURL("/my_vid.mp4", "video/mp4", function(url, blob)
{
$("video")[0].src = url
});
return Meteor.isCordova;
}
})
function getBlobURL(url, mime, callback) {
var xhr = new XMLHttpRequest();
xhr.open("get", url);
xhr.responseType = "arraybuffer";
xhr.addEventListener("load", function() {
var arrayBufferView = new Uint8Array( this.response );
var blob = new Blob( [ arrayBufferView ], { type: mime } );
var url = window.URL.createObjectURL(blob);
callback(url, blob);
});
xhr.send();
}
}
此代码段:
function getBlobURL(url, mime, callback) {
var xhr = new XMLHttpRequest();
xhr.open("get", url);
xhr.responseType = "arraybuffer";
xhr.addEventListener("load", function() {
var arrayBufferView = new Uint8Array( this.response );
var blob = new Blob( [ arrayBufferView ], { type: mime } );
var url = window.URL.createObjectURL(blob);
callback(url, blob);
});
xhr.send();
}
解决方案是否来自这个SO问题 。 我尝试实现此解决方案,但不能解决我的问题。
描述我也试着加入config.xml和移动config.js文件在这里 。
似乎问题与Cordova设置了错误的MIME类型有关,并且我之前引用的SO问题有一个显然有效的解决方案,但我似乎无法使其正常工作。 任何帮助将不胜感激。
为视频创建Blob URL是正确的选择,但是您还必须确保iOS版本高于8.1.2。
我升级到8.2,之后我的代码似乎可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.