gpt4 book ai didi

cordova - Media.getduration 返回 -1

转载 作者:行者123 更新时间:2023-12-03 17:51:46 25 4
gpt4 key购买 nike

我正在尝试获取音频文件的持续时间。为此,我使用以下代码:

$.fntReproducir=function(){
//obtenemos una instancia del elemento que contiene la info. de cancion a reproducir
var $objContenedorCancion=$('#olCanciones').children().eq(iCancionActual);
//obtenemos la ruta del archivo que se va a reproducir y se lo asignamos
//al source del audio player de HTML5
objReproductor = new Media($objContenedorCancion.attr('rel'), stopAudio, null);
//var timerDur = setInterval(GetCurrPosition, 1000);
//desmarcamos cualquier cancion en la lista (si es que estuviese marcada alguna)
$('#olCanciones li').removeClass('clsSeleccionado');
//marcamos en la lista la cancion que vamos a reproducir
$objContenedorCancion.addClass('clsSeleccionado');
meState = myMediaState.play

//reproducir la cancion con el metodo play
objReproductor.play();
//PlayMusic(objReproductor);


$('#lblDuracion').find('span').text('enters');
// Play audio
if (objReproductor) {
//objReproductor.play();
//document.getElementById('PlayStatusID').innerHTML = "<p></p>Status: playing...";
$('#lblDuracion').find('span').text('enters2');
//setButtonState(myMediaState.playback);
// Update media position every second
clearProgressTimmer();
$('#lblDuracion').find('span').text('enters4');
progressTimmer = setInterval(function () {
// get my_audio position
$('#lblDuracion').find('span').text('enters5');
objReproductor.getCurrentPosition(
// success callback
function (position) {
//document.getElementById('lblCancion').innerHTML = "<p></p>Status: enters ";
$('#lblDuracion').find('span').text('enters8');
if (position >= 0){
$('#lblDuracion').find('span').text('enters6');
$('#lblEstado').find('span').text(position);
}else {
$('#lblEstado').find('span').text('0 sec');
}

},
// error callback
function (e) {
$('#lblEstado').find('span').text('0 sec' + e);
});

$('#lblDuracion').find('span').text(objReproductor.getDuration());
//$('#lblEstado').find('span').text(count);
}, 1000);
}

$('#btnPausar').val('Play');
$('#btnPausar').find('img').attr('src','img/pause.png');
//$('#lblDuracion').find('span').text(objReproductor.getDuration());
//ocultamos suavemente los datos de la cancion anterior
$('#divInfoCancion').find('label').stop(true.true).animate({
opacity: 0
},function(){
//obtenemos una instancia del elemento que contiene los datos de la cancion
var $objContenedorCancion=$('#olCanciones').children().eq(iCancionActual);
//actualizamos la informacion de la cancion que se esta reproduciendo
//duracion total

//nombre de la cancion
//$('#lblCancion').find('span').text($objContenedorCancion.find('strong').text());
$('#lblCancion').text($objContenedorCancion.find('.li_song').text());
//artista
//$('#lblArtista').find('span').text($objContenedorCancion.find('em').text());
$('#lblArtista').text($objContenedorCancion.find('.li_artist').text());
//tiempo transcurrido
//$('#lblEstado').find('span').text('00:00');
//imagen
$('#current_img').attr('src',$objContenedorCancion.find('img').attr('src'));
//mostramos suavemente la info. de la nueva cancion
$(this).stop(true,true).animate({
opacity: 1
});
});

我在一些论坛上看到 setInterval 是强制使用 getDuration 的,这就是我使用它的原因,但它没有给我任何结果。该文件加载良好,因为我可以听到它,并且它进入 GetCurrentPosition 因为文本“duration = -1”出现,所以很明显它给出了 -1 值。我怎样才能获得正确的持续时间值?

编辑

我添加了更多代码并添加了 getCurrentPosition 女巫不起作用。我放了不同的 $('#lblDuracion').find('span').text('enters');用不同的数字来查看出现在 'lblDuracion' 中的值是什么,它是 'enters5' 但它也从 $('#lblEstado').find('span').text(objReproductor.getDuration() );返回-1。

最佳答案

即使文件系统肯定说:/android_assets

该函数需要/android_asset - 否则它将返回 -1 作为未记录的“未找到文件”。

调用 .getDuration() 方法需要一个时间切片循环 - 否则它也会返回 -1。

playFile: function() {

var audiofile = new Media(
'file:///android_asset/www/audio/Rumble_Pack_-_Mad_Robots.wav',
function(i){}
);

var counter = 0;
var timerDur = setInterval(function() {
counter = counter + 100;
if(counter > 2000) {clearInterval(timerDur);}
var duration = audiofile.getDuration();
if(duration > 0) {
clearInterval(timerDur);
console.debug(duration + ' seconds');
}
}, 100);

audiofile.play();
}

关于cordova - Media.getduration 返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19712124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com