经过几天的调查,我在这个问题上仍然没有运气,如果你能帮助我,请提前感谢!
我使用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相同的线程,因此它会冻结,直到加载任务完成....
有没有人遇到过类似的问题?应该如何解决这个问题?
非常感谢你的时间:)
答案 0 :(得分:3)
我们目前正在开发一款可以播放音乐的应用,我们遇到了完全相同的问题。
我们决定选择HTMLAudioElement。您可以像这样使用它
var myAudio = new Audio("http://123.com/xyz.mp3");
myAudio.play();
这不会在加载时冻结我们的UI,我甚至认为加载速度稍快一点。 它也适用于浏览器,非常适合测试。
缺点是,Android不支持HTML5 Media API,并且音频元素也存在一些常见问题(在某些设备的某些版本中)。因此,如果您想支持Android,最好在那里使用Phonegap Media API。