在部署到 Android 时,我一直试图让 Media 元素在 PhoneGap 中工作。这是我到目前为止所做的:
下载并安装以下内容:
Java(版本 7 更新 25)
http://java.com/en/download/index.jsp
Java SE 开发工具包 7u25(64 位)
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
蚂蚁 (1.9.2)
http://www.apache.org/dist/ant/binaries/
NodeJS (v0.10.18 64 位)
http://nodejs.org/
Android SDK (ADT Bundle for Windows) 64 位 - 版本 2013-07-29
http://developer.android.com/sdk/index.html
安装文件夹:E:\PhoneDev\adt-bundle-windows-x86_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
验证以下路径是否已添加到 PATH 环境变量(以分号分隔):
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
安装PhoneGap(现在是3.0.0版):
npm install -g phonegap
创建 phonegap 应用程序:
phonegap create media-app
构建 phonegap 应用程序:
cd media-app
phonegap local build android
在 media-app\platforms\android\res\xml\config.xml 中添加:
<feature name="Media">
<param name="android-package" value="org.apache.cordova.AudioHandler" />
</feature>
添加platforms\android\AndroidManifest.xml:
<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\www\index.html 的内容替换为以下页面上的“完整示例”:http:
//docs.phonegap.com/en/3.0.0/cordova_media_media.md.html#Media
在模拟器中运行 phonegap 应用程序:
media-app\platforms\android\cordova\run.bat
应用程序运行正常,但是当我尝试播放声音时,出现以下错误:
Uncaught ReferenceError: Media is not defined at
file:///android_asset/www/index.html
我还尝试从与 Android SDK 捆绑的 Eclipse 中做同样的事情。我创建了一个 AVD 并从 Eclipse 运行应用程序。我犯了同样的错误。一段时间以来,我一直试图了解问题所在。如果有人能对这个问题有所了解,我将不胜感激!