【问题标题】:set video to html video tag - cordova app将视频设置为 html 视频标签 - 科尔多瓦应用
【发布时间】:2015-05-08 14:36:58
【问题描述】:

我的应用是一个 Cordova 混合 Windows Phone 8.1 应用。

我正在使用媒体捕获插件捕获视频,并在我的回调中获取视频 url,如下所示:

/VideoCache/Video-7c5eb8ae-5c3d-48ee-9f3b-0805e81ebc06.mp4

如何将此视频设置为 html 视频标签。

我创建了一个超级简单的项目来重现这个错误并分享到onedrive

这是我通过 javascript 调用它的方式:

    // Called when capture operation is finished
//
    function captureSuccess(mediaFiles) {
     var i, len;
    console.log("captureSuccess, mediaFiles: " + JSON.stringify(mediaFiles));
    console.log("mediaFiles.fullPath: " + mediaFiles[0].fullPath);

        //document.querySelector("#video1 > source").src = "http://www.w3schools.com/html/movie.mp4";
    document.querySelector("#video1 > source").src = mediaFiles[0].fullPath;

}

// Called if something bad happens.
//
function captureError(error) {
    var msg = 'An error occurred during capture: ' + error.code;
    navigator.notification.alert(msg, null, 'Uh oh!');
}

// A button will call this function
//
function captureVideo() {
    // Launch device video recording application,
    // allowing user to capture up to 2 video clips
    navigator.device.capture.captureVideo(captureSuccess, captureError, { limit: 1 });
}

【问题讨论】:

  • 嘿,你分享了你项目的最新版本吗?我刚刚下载并解压了它。这就是我所看到的——它是一个 WP8 平台(它是构建基于 Silverlight 的 XAP 的 Windows Phone 8)。它在 index.js 或任何引用的 js 文件中都没有上述代码。这是一个 Cordova CLI 项目,因为我没有看到 VS 项目或解决方案文件。如果您有进一步调查该问题的项目,我很乐意看到实际项目。
  • 感谢 Subhag,是的,您将在 /VIdeoCordova/platforms/wp8 找到解决方案
  • 即原生项目。能否指点一下包含上述代码的 JS 文件?
  • 还有 WP8,表示它是 Windows Phone 8 应用程序,而不是您在上面的报告标题中提到的 8.1 应用程序。您能澄清一下您的工作流程吗?

标签: javascript cordova windows-phone visual-studio-cordova


【解决方案1】:
var videoElement = document.getElementById("myVideo");
videoElement.src = mediaFiles[0].fullPath; 
videoElement.load();

【讨论】:

  • 感谢史蒂夫,但显示的消息仍然是无效来源而不是视频
【解决方案2】:

这是 windows phone 8.1 的问题。似乎无法在 Cordova 用于 windows 8 和 windows 8.1 silverlight 应用程序的 webbrowser 控件中访问本地视频。这是MSDN上的链接。

【讨论】: