我正试图通过phonegap上的媒体api获取录制的持续时间。 (版本3.3,媒体插件版本0.2.9) 但是media.getDuration方法没有得到正确的值,它的工作原理如下:
第一条记录,在发布后,该方法总是返回-1, 在下一次录制(使用相同的媒体对象)之后,getduration方法返回上一次录制的时间。如果我在录制后进行播放,现在getduration方法会返回正确的计时器。
我不知道该怎么做,我试图调用游戏并在需要持续时间时停止。但没有成功。
尝试了这一点,没有成功:
PhoneGap unable to getDuration() out of Media API, but other methods work
提前感谢。
答案 0 :(得分:1)
PhoneGap unable to getDuration() out of Media API, but other methods work 回答brimil01的作品。 另一个答案只适用于我的一个设备。
我的代码(你可以做类似的事情):
$cordovaMedia.play(media);
dur = $cordovaMedia.getDuration(media);
var counter = 0;
timerDur = setInterval(function() {
counter = counter + 100;
if (dur < 0) {
dur = $cordovaMedia.getDuration(media);
}
$("#msg").html((counter / 1000).toMMSS() + "/" + dur.toMMSS());
if (dur > 0 && counter / 1000 > dur) {
$("#playAudio").css({
'color': 'black'
});
$("#msg").html("Play finished.");
clearInterval(timerDur);
$cordovaMedia.stop(media);
$cordovaMedia.release(media);
}
}, 100);
同样的问题here
答案 1 :(得分:0)
尝试此解决方法:
播放媒体(如果您不想实际播放,请立即暂停播放),然后再检查播放时间。