zurück Ich versuche, die Dauer der Audiodateien zu erhalten. Dafür habe ich den folgenden Code verwenden:Media.getduration gibt -1
$.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
});
});
ich in einigen Foren sah die setInterval obligatorisch war getDuration zu verwenden, das ist, warum ich es verwenden, aber es gibt mir kein Ergebnis. Die Datei wird gut geladen, weil ich sie hören kann und sie in GetCurrentPosition eingeht, weil der Text "duration = -1" erscheint, so dass klar ist, dass der Wert -1 ist. Wie kann ich den richtigen Wert für die Dauer festlegen?
EDIT
ich mehr Code zu setzen und auch getCurrentPosition Hexe hinzufügen funktioniert nicht. Ich lege ein anderes $ ('# lblDuracion') fest. Find ('span'). Text ('kommt'); mit verschiedenen Zahlen, um zu sehen, welcher Wert in "lblDuracion" angezeigt wird, und "instors5", aber auch von der Zeile $ ('# lblEstado'). find ('span'). text (objReproductor.getDuration()); das gibt -1 zurück.
Danke für die Antwort hinzufügen. Ich habe bereits die Docs auf phoneGap für den Media() -Konstruktor überprüft. Ich habe versucht, dem Beispiel zu folgen, das dort erscheint, aber es hat nicht für mich funktioniert. Ich weiß, dass der Wert -1 bedeutet, dass die Dauer unbekannt ist, aber warum ist die Dauer unbekannt? Es muss daran liegen, dass es einen Fehler gibt, weil ich eine normale mp3-Datei mit fixer Dauer verwende. –
Es ist definitiv nicht "ein Fehler", während der OnError Calback nicht ausgelöst wird - denke, es funktioniert nur mit lokalen Dateien - während der Pfad dort ein wenig seltsam ist mit z./android_assets/... best pratice ist zu hook eine Funktion für den onError-Callback und protokolliert seine Ausgabe an die Konsole (aber ich denke, es wird nicht einmal ausgelöst werden). Dies ist nicht C und Rückgabewert -1 ist dokumentiert, kein Fehler zu sein. –
Ich benutze/android_assets/... Pfad und der Song spielt so, dass die neuen Medien (...) gut funktionieren. Aber ich weiß nicht, warum die Methode getDuration() immer -1 zurückgibt. –