嵌入的 mp3 在 Phonegap 应用程序中不起作用
mp3 embedded not working in Phonegap app
我创建了一个使用 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
我在控制台中收到错误消息:
GET file:///android_asset/www/path/to/unexisting.mp3
net::ERR_FILE_NOT_FOUND Uncaught (in promise) DOMException: Failed to
load because no supported source was found.
使用 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
class,而是
<audio id="a" src="..."/>
<button onclick="document.getElementById('a').play()">Play</button>
我断开了 phone 与笔记本电脑的连接,但它仍然无法正常工作。
我正在使用 phonegap 6.0.1。
我错过了什么?
稍后更新:
我从 Chrome DevTools 检查了网络选项卡,我可以看到这个
- 要求
- URL:文件:///android_asset/www/path/to/my.mp3
- 请求Method:GET
- 状态Code:200正常(来自缓存)
- 回应Headers
- Client-Via:shouldInterceptRequest
- Content-Length:2
- Content-Type:audio/mpeg
- 请求Headers显示临时headers
- 范围:字节=0-1
- User-Agent:Mozilla/5.0 ...
而不是
<audio src="/path/to/my.mp3"/>
我用过
<audio src="/android_asset/www/path/to/my.mp3"/>
成功了。
我创建了一个使用 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
我在控制台中收到错误消息:
GET file:///android_asset/www/path/to/unexisting.mp3 net::ERR_FILE_NOT_FOUND Uncaught (in promise) DOMException: Failed to load because no supported source was found.
使用 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
class,而是
<audio id="a" src="..."/>
<button onclick="document.getElementById('a').play()">Play</button>
我断开了 phone 与笔记本电脑的连接,但它仍然无法正常工作。
我正在使用 phonegap 6.0.1。
我错过了什么?
稍后更新:
我从 Chrome DevTools 检查了网络选项卡,我可以看到这个
- 要求
- URL:文件:///android_asset/www/path/to/my.mp3
- 请求Method:GET
- 状态Code:200正常(来自缓存)
- 回应Headers
- Client-Via:shouldInterceptRequest
- Content-Length:2
- Content-Type:audio/mpeg
- 请求Headers显示临时headers
- 范围:字节=0-1
- User-Agent:Mozilla/5.0 ...
而不是
<audio src="/path/to/my.mp3"/>
我用过
<audio src="/android_asset/www/path/to/my.mp3"/>
成功了。