Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.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
Javascript 在Meteor生成的iOS应用程序中运行本地HTML5视频_Javascript_Ios_Cordova_Meteor_Html5 Video - Fatal编程技术网

Javascript 在Meteor生成的iOS应用程序中运行本地HTML5视频

Javascript 在Meteor生成的iOS应用程序中运行本地HTML5视频,javascript,ios,cordova,meteor,html5-video,Javascript,Ios,Cordova,Meteor,Html5 Video,我正在使用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

我正在使用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>
这个片段:

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();
}
这是一个解决方案。我尝试实施此解决方案,但它无法解决我的问题

我还尝试添加config.xml和mobile-config.js文件,如前所述


这个问题似乎与Cordova设置了错误的MIME类型有关,所以我之前提到的问题有一个解决方案,显然是有效的,但我似乎无法让它起作用。非常感谢您的帮助。

为您的视频创建Blob URL是正确的选择,但您还必须确保您的iOS版本高于8.1.2

我升级到8.2,之后我的代码似乎运行良好

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();
}