【发布时间】:2014-09-19 01:13:33
【问题描述】:
我正在使用 BlobStore 从我的 GAE 应用程序中提供一个音频文件(包含一个简短的未压缩 PCM 的 WAV 文件)。
在点击事件中,我设置audio.src 并调用audio.play()。
现在是奇怪的部分:
- 在本地工作时 - 它在 IOS 和 Android 上运行良好。
- 部署到 GAE 后,它在 IOS 上运行良好 - 但在 Android 上不行!
没有显示错误 - 它只是什么都不播放。 据我从 GAE 日志中可以看出,音频文件 在所有情况下都提供。 如果是 Android,我可以看到来自“Player/LG Player 1.0 for Android 4.4.2(stagefright 替代品)”的请求。
知道发生了什么,或者如何调试它?
更新
根据 Stuart Langley 的建议,尝试播放 Google Cloud Storage 中的文件。
在这种情况下,Android 运行良好,而 IOS 则不行(间歇性地。有时会出错)。
因此,对我有用的解决方法是将文件存储在 Cloud Storage 上,并调用 createGsBlobKey 以将其作为 blob 提供。
在客户端,我检查它是否是 Android (navigator.userAgent.match(/Android/i))。对于 Android,我将 audio.src 设置为 Cloud Storage 文件,对于 IOS,我将其设置为我的 servlet,它使用 BlobstoreService.serve 和我从 createGsBlobKey 获得的 blob 密钥来提供文件。
这是一个繁琐的解决方法,我没有检查其他移动操作系统以了解每个操作系统的工作原理,所以如果有人有更好的解决方案,请告诉我。
【问题讨论】:
标签: android html google-app-engine html5-audio blobstore