【问题标题】:mp3 embedded not working in Phonegap appmp3 嵌入在 Phonegap 应用程序中不起作用
【发布时间】: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


【解决方案1】:

而不是

<audio src="/path/to/my.mp3"/>

我用过

<audio src="/android_asset/www/path/to/my.mp3"/>

它成功了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    相关资源
    最近更新 更多