使用FileOpener Phonegap Android“未定义”结果并且无法打开视频文件?

时间:2013-09-26 06:47:28

标签: javascript jquery video cordova

我已下载插件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);
});

 **firstalert** second alert third alert 我无法打开资产/ www / videos / abcd.mp4中的任何视频文件/图像以及类似的图像

现在一切正常但是在尝试按下播放按钮时这是警告: enter image description here

2 个答案:

答案 0 :(得分: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说什么......

答案 1 :(得分:0)

我在使用cordova 2.9.0,jquery 1.9.1,jqm-1.3.2和android-sdk-version:14后添加代码我收到错误: logcat

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"/>

CAPITAL LETTER的一个小错误但它删除了所有错误,最后我没有错误,除了我在编辑过的问题中添加的最后一个警告“无法播放视频”