javascript - Uncaught ReferenceError : Media is not defined

标签 javascript android cordova

在部署到 Android 时,我一直在尝试让 Media 元素在 PhoneGap 中工作。这是我到目前为止所做的:

下载并安装以下内容:

Java(版本 7 更新 25)
http://java.com/en/download/index.jsp

Java SE 开发套件 7​​u25(64 位)
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

Ant (1.9.2)
http://www.apache.org/dist/ant/binaries/

NodeJS(v0.10.18 64 位)
http://nodejs.org/

Android SDK(适用于 Windows 的 ADT bundle )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 bundle 在一起的 Eclipse 中做同样的事情。我创建了一个 AVD 并从 Eclipse 运行应用程序。我犯了同样的错误。 一段时间以来,我一直试图了解问题所在。如果有人能阐明这个问题,我将不胜感激!

最佳答案

从 3.0 版开始,PhoneGap 将设备级 API 作为插件实现。使用 CLI 的插件命令,如 Command-line Interface 中所述, 为项目添加或删除此功能:

您需要将媒体插件添加到您的项目中 -

phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-media.git

在项目目录中运行上面的命令,你应该设置好了。

关于javascript - Uncaught ReferenceError : Media is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18643255/

相关文章:

javascript - 语义 UI 动态更改可关闭设置

android - Netbeans 8.1,Gluon 项目 Android 错误

android - 使 TextView 适合 Android 上的 Layout

android - 我如何在 Android 上进行身份验证

node.js - 将 Node 与 Phonegap 应用程序集成

javascript - 何时加载我的 JavaScript?

javascript - 提交前将 Lat Lng 值设置到隐藏字段中

javascript - Ruby 生成的 JSON 与 JavaScript 的 JSON 解析器不兼容

angularjs - 混合移动应用程序的数据库解决方案

javascript - ngx-bootstrap typeahead with FormControl angular 2