在 Meteor 生成的 iOS 应用程序中获取本地 HTML5 视频

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 question 的解决方案。我尝试实施此解决方案,但它没有解决我的问题。

我也尝试过添加 config.xml 和 mobile-config.js 文件,如 here 所述。

问题似乎与 Cordova 设置错误的 MIME 类型有关,而我之前引用的 SO 问题有一个显然有效但我似乎无法使其工作的解决方案。任何帮助将不胜感激。

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

我升级到 8.2,之后我的代码似乎工作正常。