【发布时间】:2016-05-16 12:10:10
【问题描述】:
我创建了一个使用 AUDIO 元素的 Phonegap 应用程序。它在浏览器上完美运行。
如果我将其安装为应用程序,音频将不再播放。
我正在使用 Chrome DevTools 调试应用程序。我检查了音频元素,它的来源类似于file:///android_asset/www/path/to/my.mp3。如果我改成http://whatever.com/path/to/an.mp3 就可以了。
如果我将其更改为file:///android_asset/www/path/to/unexisting.mp3,我会在控制台中收到错误:
获取文件:///android_asset/www/path/to/unexisting.mp3 net::ERR_FILE_NOT_FOUND Uncaught (in promise) DOMException: Failed to 加载,因为找不到支持的源。
使用file:///android_asset/www/path/to/my.mp3,我在控制台中没有收到任何错误,只是我听不到任何声音。
在我的config.xml 我有
...
<gap:plugin name="org.apache.cordova.media" />
...
<feature name="Media">
<param name="android-package" value="org.apache.cordova.media.AudioHandler" />
</feature>
<feature name="http://api.phonegap.com/1.0/file"/>
<feature name="http://api.phonegap.com/1.0/media"/>
...
我确实运行了phonegap plugin add org.apache.cordova.media。
我没有使用Media 类,而是类似
<audio id="a" src="..."/>
<button onclick="document.getElementById('a').play()">Play</button>
我断开了手机与笔记本电脑的连接,但仍然无法使用。
我正在使用 phonegap 6.0.1。
我错过了什么?
稍后更新:
我从 Chrome DevTools 检查了网络选项卡,我可以看到这个
- 请求
- URL:file:///android_asset/www/path/to/my.mp3
- 请求方法:GET
- 状态码:200 OK(来自缓存)
- 响应标头
- 客户端通过:shouldInterceptRequest
- 内容长度:2
- 内容类型:音频/mpeg
- 显示请求标头临时标头
- 范围:字节=0-1
- 用户代理:Mozilla/5.0 ...
【问题讨论】:
-
我知道为时已晚.. 你找到答案了吗?你可以看看stackoverflow.com/questions/37101050/…
-
那不一样。该问题/答案中提到的文件存储在手机存储或 SD 卡中。我的嵌入在应用程序中。
-
但我找到了答案。
标签: android cordova audio phonegap-build