Javascript 未捕获引用错误:未定义媒体
我一直在尝试让媒体元素在部署到Android时在PhoneGap中工作。以下是我到目前为止所做的: 下载并安装以下内容:Javascript 未捕获引用错误:未定义媒体,javascript,android,cordova,Javascript,Android,Cordova,我一直在尝试让媒体元素在部署到Android时在PhoneGap中工作。以下是我到目前为止所做的: 下载并安装以下内容: JAVA_HOME = C:\Progra~1\Java\jre7 ANT_HOME = E:\Program Files (x86)\apache-ant-1.9.2 NODEJS = E:\Program Files (x86)\nodejs E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\platfor
JAVA_HOME = C:\Progra~1\Java\jre7
ANT_HOME = E:\Program Files (x86)\apache-ant-1.9.2
NODEJS = E:\Program Files (x86)\nodejs
E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\platform-tools
E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\tools
%ANT_HOME%\bin
%NODEJS%
E:\Program Files\Java\jdk1.7.0_25\bin
npm install -g phonegap
phonegap create media-app
cd media-app
phonegap local build android
<feature name="Media">
<param name="android-package" value="org.apache.cordova.AudioHandler" />
</feature>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
media-app\platforms\android\cordova\run.bat
Java(版本7更新25)Java SE开发工具包7u25(64位)
蚂蚁(1.9.2)
NodeJS(v0.10.18 64位)
Android SDK(适用于Windows的ADT捆绑包)64位-版本2013-07-29
安装文件夹:E:\PhoneDev\adt-bundle-windows-x86\u 64-20130729 设置环境变量:
JAVA_HOME = C:\Progra~1\Java\jre7
ANT_HOME = E:\Program Files (x86)\apache-ant-1.9.2
NODEJS = E:\Program Files (x86)\nodejs
E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\platform-tools
E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\tools
%ANT_HOME%\bin
%NODEJS%
E:\Program Files\Java\jdk1.7.0_25\bin
npm install -g phonegap
phonegap create media-app
cd media-app
phonegap local build android
<feature name="Media">
<param name="android-package" value="org.apache.cordova.AudioHandler" />
</feature>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
media-app\platforms\android\cordova\run.bat
验证是否将以下路径添加到PATH环境变量(用分号分隔):
JAVA_HOME = C:\Progra~1\Java\jre7
ANT_HOME = E:\Program Files (x86)\apache-ant-1.9.2
NODEJS = E:\Program Files (x86)\nodejs
E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\platform-tools
E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\tools
%ANT_HOME%\bin
%NODEJS%
E:\Program Files\Java\jdk1.7.0_25\bin
npm install -g phonegap
phonegap create media-app
cd media-app
phonegap local build android
<feature name="Media">
<param name="android-package" value="org.apache.cordova.AudioHandler" />
</feature>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
media-app\platforms\android\cordova\run.bat
安装PhoneGap(现在是3.0.0版):
JAVA_HOME = C:\Progra~1\Java\jre7
ANT_HOME = E:\Program Files (x86)\apache-ant-1.9.2
NODEJS = E:\Program Files (x86)\nodejs
E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\platform-tools
E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\tools
%ANT_HOME%\bin
%NODEJS%
E:\Program Files\Java\jdk1.7.0_25\bin
npm install -g phonegap
phonegap create media-app
cd media-app
phonegap local build android
<feature name="Media">
<param name="android-package" value="org.apache.cordova.AudioHandler" />
</feature>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
media-app\platforms\android\cordova\run.bat
创建phonegap应用程序:
JAVA_HOME = C:\Progra~1\Java\jre7
ANT_HOME = E:\Program Files (x86)\apache-ant-1.9.2
NODEJS = E:\Program Files (x86)\nodejs
E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\platform-tools
E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\tools
%ANT_HOME%\bin
%NODEJS%
E:\Program Files\Java\jdk1.7.0_25\bin
npm install -g phonegap
phonegap create media-app
cd media-app
phonegap local build android
<feature name="Media">
<param name="android-package" value="org.apache.cordova.AudioHandler" />
</feature>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
media-app\platforms\android\cordova\run.bat
构建phonegap应用程序:
JAVA_HOME = C:\Progra~1\Java\jre7
ANT_HOME = E:\Program Files (x86)\apache-ant-1.9.2
NODEJS = E:\Program Files (x86)\nodejs
E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\platform-tools
E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\tools
%ANT_HOME%\bin
%NODEJS%
E:\Program Files\Java\jdk1.7.0_25\bin
npm install -g phonegap
phonegap create media-app
cd media-app
phonegap local build android
<feature name="Media">
<param name="android-package" value="org.apache.cordova.AudioHandler" />
</feature>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
media-app\platforms\android\cordova\run.bat
加载项媒体应用程序\platforms\android\res\xml\config.xml:
JAVA_HOME = C:\Progra~1\Java\jre7
ANT_HOME = E:\Program Files (x86)\apache-ant-1.9.2
NODEJS = E:\Program Files (x86)\nodejs
E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\platform-tools
E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\tools
%ANT_HOME%\bin
%NODEJS%
E:\Program Files\Java\jdk1.7.0_25\bin
npm install -g phonegap
phonegap create media-app
cd media-app
phonegap local build android
<feature name="Media">
<param name="android-package" value="org.apache.cordova.AudioHandler" />
</feature>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
media-app\platforms\android\cordova\run.bat
应用程序运行正常,但当我尝试播放声音时,出现以下错误:
Uncaught ReferenceError: Media is not defined at
file:///android_asset/www/index.html
我还尝试在Eclipse上做同样的事情,Eclipse与Android SDK捆绑在一起。我创建了一个AVD并从Eclipse运行了应用程序。我也犯了同样的错误。
一段时间以来,我一直在努力了解问题所在。如果有人能解释一下这个问题,我会非常感激的 从3.0版开始,PhoneGap将设备级API作为插件实现。使用CLI的plugin命令(如中所述)为项目添加或删除此功能: 您需要将媒体插件添加到项目中-
phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-media.git
在项目目录中运行上面的命令,你应该被设置。那么“index.html”文件中有什么?在这个页面上搜索“完整示例”:我用命令行添加了插件:cordova plugin add,但它仍然不起作用:(从phonegap 5.2.0开始,
phonegap local
命令不推荐使用