HTML5音频blob无法在Android上播放

时间:2014-07-27 20:18:17

标签: android html5 google-app-engine html5-audio blobstore

我使用BlobStore从我的GAE应用程序提供音频文件(包含短未压缩P​​CM的WAV文件)。 在点击活动中,我设置audio.src并致电audio.play()

现在这里有一个奇怪的部分:

  • 在本地工作时 - 它在IOS和Android上都能很好地运行。
  • 部署到GAE之后,它在IOS上运行良好 - 但不在Android上

没有显示错误 - 它只是没有播放。 据我所知,GAE日志中,音频文件 在所有情况下均可用。 在Android的情况下,我可以看到来自" Player / LG Player 1.0 for Android 4.4.2(stagefright alternative)"的请求。

知道发生了什么,或者如何调试它?


更新

根据Stuart Langley的建议,尝试播放来自Google云端存储的文件 在这种情况下, Android播放效果良好,IOS不会(间歇性播放。有时会出错)。

因此,对我有用的解决方法是将文件存储在云存储上,并调用createGsBlobKey以将其作为blob提供。 在客户端,我检查它是否是Android(navigator.userAgent.match(/Android/i))。在Android的情况下,我将audio.src设置为云存储文件,并且在IOS的情况下,我将其设置为我的servlet,该servlet使用BlobstoreService.serve使用我从createGsBlobKey获得的blob密钥来提供文件

这是一个繁琐的解决方法,我没有检查其他移动操作系统,看看哪个有用,所以如果有人有更好的解决方案,请告诉我。

1 个答案:

答案 0 :(得分:1)

这很可能是因为服务blob时的响应速度很快。

Here是关于音频文件在某些​​浏览器中无法正常播放的问题跟踪器项目。

Here是我放在一起的测试网站,后面说明了问题。

至于变通方法 - 您可以将文件放在云存储上,然后从那里播放,只要您不关心人们链接文件。

相关问题