【问题标题】:"undefined" result using FileOpener Phonegap Android and failed to open video File?“未定义”结果使用 FileOpener Phonegap Android 并且无法打开视频文件?
【发布时间】:2013-09-26 06:47:28
【问题描述】:

我已经下载了插件FileOpener 并像这样添加到 m,y 项目中:

<!DOCTYPE html>
<html lang="en"  dir="ltr">
<head>
    <meta charset="utf-8">

   <meta name="viewport" content="width=device-width,  user-scalable=no">
   <title>sample</title>
   <link rel="stylesheet"  href="css/jquery.mobile-1.3.2.min.css">
  <link rel="stylesheet"  href="css/adidas.css">
  <script src="js/jquery.js"></script>
  <script src="js/jquery.mobile-1.3.2.min.js"></script>
  <script src="js/data_en.js"></script>
  <script src="js/data_sp.js"></script>
  <script src="js/adidas.js"></script>
  <script src="js/cordova.js"></script>
  <script src="js/video.js"></script>
  <script src="js/fileopener.js"></script>

</head>
<body>
 <div data-role="page" data-theme="a" class="my-page" id="video">
  <video id="video_player" src="#" controls="controls"></video> 
</div>
</body>

在 js 文件中

    $(document).on('pagebeforeshow',"#video", function () {
   var xyz = document.getElementById('video_player');
    alert("values xyz:" + xyz);
     var x =  window.plugins.fileOpener.open("file:///android_asset/www/videos/1974.mp4");
  xyz.src =  window.plugins.fileOpener.open("file:///android_asset/www/balls/1970.png");

    alert("opener:" + x);
    window.plugins.videoPlayer.play(x);
    alert("xyz after src:" +  xyz);
});

我无法打开 assets/www/videos/abcd.mp4 中的任何视频文件/图像,以及类似的图像

现在一切正常,但在尝试点击播放按钮时会发出警报:

【问题讨论】:

  • 你是否在android的src文件夹中添加了所有的java文件并在你的config.xml文件中添加了插件?
  • 而 fileOpener 插件用于在系统应用程序(如 mx 播放器)中打开您的所有图像、视频,而不是在您的科尔多瓦网页中的 imageViewer
  • 是的,我已经添加了所有 java 文件并在 config.xml 中添加了插件

标签: javascript jquery video cordova


【解决方案1】:
 <!DOCTYPE html>
 <html lang="en"  dir="ltr">
 <head>
<meta charset="utf-8">

<meta name="viewport" content="width=device-width,  user-scalable=no">
<title>sample</title>
<script src="js/cordova.js"></script>
<script src="js/video.js"></script>
<script src="js/fileopener.js"></script>
<script src="js/ADD_ANY_JQUERY.MIN.JS"></script>
<script>
   function openFile(filePath)
  {
     window.plugins.fileOpener.open(filePath);
  }
</script
</head>
<body>
<div data-role="page" data-theme="a" class="my-page" id="video">
<img src="img/b_img1.png" onclick="openFile('file:///android_asset/www/videos/1974.mp4')"/>
</div>
</body>

已编辑 Fileopener.js 会是这样的:

cordova.define("cordova/plugin/fileopener",
  function(require, exports, module) {
    var exec = require("cordova/exec");
    var FileOpener = function () {};

FileOpener.prototype.open = function(url) {
    exec(null, null, "FileOpener", "openFile", [url]);
};

FileOpener.prototype.setTAG = function(tag) {
    exec(null, null, "FileOpener", "setTAG", [tag]);
};
var fileOpener = new FileOpener();
    module.exports = fileOpener;

});
/**
 * Load Plugin
 */
if (!window.plugins) {
    window.plugins = {};
}
if (!window.plugins.fileOpener) {
    window.plugins.fileOpener = cordova.require("cordova/plugin/fileopener");
}

"js/ADD_ANY_JQUERY.MIN.JS" 在这一行中添加任何 jquery.min.js

最后检查 Cordova.js 文件夹是否在您的应用程序的 js 文件夹中。如果它不起作用,请告诉我您的 logcat 说什么...

【讨论】:

  • 我已经正确添加了一个 \ll 文件 jquery ,cordova.jquery-mobile 并且我使用的是 cordova 2.9.0 和 min-sdk 版本是 8 因为我的设备现在支持 android 2.2 添加你的代码它的显示图像,但单击图像没有显示任何视频.......并且logcat是:01-06 19:36:53.132:D / PluginManager(9420):exec()调用未知插件:FileOpener 01-06 19: 36:53.202:D/CordovaLog(9420):文件:///android_asset/www/js/fileopener.js:第 20 行:找不到类 01-06 19:36:53.202:I/Web 控制台(9420):类在 file:///android_asset/www/js/fileopener.js:20 中找不到
  • 这是因为它没有在您的应用程序中添加任何 codrova.js 文件。确保在我们的 js 文件夹中有 cordova-2.9.0.js 和类似 js/cordova-2.9.0.js 的脚本
  • 我已经从cordova网站添加了cordova-2.9.0.js,它已经保存在js文件夹中是否有任何问题,因为我使用的是cordova2.9.0和cordova 2.8.0的文件打开器
  • 我已经编辑了我的问题并添加了我如何添加所有 js src 文件
  • 在我的回答中,我使用了 fileopener 插件。首先在你的 src 和 config.xml 文件中添加 fileopener 插件然后告诉我。
【解决方案2】:

我在添加代码后使用了 cordova 2.9.0、jquery 1.9.1、jqm-1.3.2 和 android-sdk-version:14 时出现错误:logcat is

01-06 19:36:53.132: D/PluginManager(9420): exec() call to unknown plugin: FileOpener 
 01-06 19:36:53.202: D/CordovaLog(9420): file:///android_asset/www/js/fileopener.js: Line 20 : Class not found     
01-06 19:36:53.202: I/Web Console(9420): Class not found at file:///android_asset/www/js/fileopener.js:20 

这个问题的解决方法是我在 config.xml 和 plugin.xml 中犯了错误: config.xml 替换这个:

 <feature name="videoplayer">
        <param name="android-package" value= "com.adidas.football.app.videoPlayer.VideoPlayer"/>
    </feature>

与:

  <feature name="VideoPlayer">
        <param name="android-package" value= "com.adidas.football.app.videoPlayer.VideoPlayer"/>
    </feature>

plugin.xml 替换这个:

<plugin name="videoplayer" value= "com.adidas.football.app.videoPlayer.VideoPlayer"/>

与:

 <plugin name="VideoPlayer" value= "com.adidas.football.app.videoPlayer.VideoPlayer"/>

大写字母的一个小错误,但它消除了所有错误,最后我没有错误,除了我在编辑的问题“无法播放视频”中添加的最后一个警报

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多