Phonegap / Cordova - media api - 当从URL播放音频时,UI会冻结几秒钟

时间:2014-01-17 03:18:23

标签: javascript ios audio cordova

经过几天的调查,我在这个问题上仍然没有运气,如果你能帮助我,请提前感谢!

我使用cordova 3.3来做我的iOS应用程序,一个功能是从URL播放音频剪辑。

我正在使用cordova的官方媒体api,以下是我如何按照他们的官方例子使用它

var myMedia = new Media(“http://123.com/xyz.mp3”); myMedia.play()

问题在于:当播放事件被触发时,用户界面会冻结几秒钟,

我相信这是因为从http://123.com/xyz.mp3获取远程资源,当在本地播放mp3时,没有这样的问题。

媒体api似乎不提供preload kinda功能。

加载远程url mp3时,它使用与UI相同的线程,因此它会冻结,直到加载任务完成....

有没有人遇到过类似的问题?应该如何解决这个问题?

非常感谢你的时间:)

1 个答案:

答案 0 :(得分:3)

我们目前正在开发一款可以播放音乐的应用,我们遇到了完全相同的问题。

我们决定选择HTMLAudioElement。您可以像这样使用它

var myAudio = new Audio("http://123.com/xyz.mp3");
myAudio.play();

这不会在加载时冻结我们的UI,我甚至认为加载速度稍快一点。 它也适用于浏览器,非常适合测试。

缺点是,Android不支持HTML5 Media API,并且音频元素也存在一些常见问题(在某些设备的某些版本中)。因此,如果您想支持Android,最好在那里使用Phonegap Media API。