Audio Phonegap Media getCurrentPosition不准确且速度缓慢
我非常失望地发现,现在我已经准备好将我的html5应用程序迁移到使用phonegap的手机上,播放音频的能力就像永动机一样。就快到了,但还不完全到 Androids(至少在冰淇淋三明治之前)的答案是Phonegap媒体api。据大家说 问题是在播放音频时,我真的很关心当前的时间。在运行Chrome的Mac电脑上,我计算了完成此操作所需的时间: pos=音频。当前时间 它不到一毫秒 使用Phonegap媒体api,我必须调用一个异步函数,等待它回调,然后获取当前媒体位置。这需要5到150毫秒的时间。这是不一致的,它是令人痛苦的缓慢 这也回避了一个问题:现在几点了?如果需要150毫秒才能得到时间,我是在150毫秒的开始还是结束时得到时间的?我真的不能确定我得到的时间是否真的那么接近现在的时间 幸好我现在还没有写潜艇导航软件,因为有这么一个可怕的时间来源,我永远无法确定我在哪里 我现在使用系统时钟跟踪时间,并使用getCurrentPosition()不时重新同步。然而,我仍然可以离开超过100毫秒 我的问题:有谁有更好的方法吗 编辑: 查看Cordova的代码:Audio Phonegap Media getCurrentPosition不准确且速度缓慢,audio,cordova,Audio,Cordova,我非常失望地发现,现在我已经准备好将我的html5应用程序迁移到使用phonegap的手机上,播放音频的能力就像永动机一样。就快到了,但还不完全到 Androids(至少在冰淇淋三明治之前)的答案是Phonegap媒体api。据大家说 问题是在播放音频时,我真的很关心当前的时间。在运行Chrome的Mac电脑上,我计算了完成此操作所需的时间: pos=音频。当前时间 它不到一毫秒 使用Phonegap媒体api,我必须调用一个异步函数,等待它回调,然后获取当前媒体位置。这需要5到150毫秒的时间
/**
* Get current position of playback.
*
* @return position in msec or -1 if not playing
*/
public long getCurrentPosition() {
if ((this.state == STATE.MEDIA_RUNNING) || (this.state == STATE.MEDIA_PAUSED)) {
int curPos = this.player.getCurrentPosition();
this.handler.webView.sendJavascript("cordova.require('cordova/plugin/Media').onStatus('" + this.id + "', " + MEDIA_POSITION + ", " + curPos / 1000.0f + ");");
return curPos;
}
else {
return -1;
}
}
在我看来,这应该执行得非常快……除了对sendJavascript()的调用。我想知道神秘的延迟是不是从这里开始的
出于我的目的,我不需要一个onStatus事件:我需要尽快得到当前的位置。所以我想知道我是否可以删除那行代码。。。我想这将需要对科尔多瓦震源本身进行更改(为什么不在标准JS中使用
元素本身呢?哦,我希望如此。这就是我开发它的方式,它在chrome中工作得很好。不幸的是,该标记在webkit浏览器中存在问题,您可以在该网站上搜索一下加以验证。基本上,它不会给出任何错误,但不会播放。嗯。我一直在开发使用Sencha Touch和
元素私奔应用程序在Mobile Safari中运行良好。Android浏览器出现了一些问题,我正试图解决这些问题。