मैं ऑडियो फ़ाइलों की अवधि प्राप्त करने की कोशिश कर रहा हूं। उसके लिए मैं निम्नलिखित कोड का उपयोग कर रहा:मीडिया .getduration रिटर्न -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
});
});
मैं कुछ मंचों कि setInterval getDuration उपयोग करने के लिए अनिवार्य था में देखा था, यही वजह है कि मैं इसका इस्तेमाल, लेकिन यह मुझे किसी भी परिणाम दे रही है नहीं है। फ़ाइल अच्छी तरह से लोड की गई है क्योंकि मैं इसे सुन सकता हूं और यह GetCurrentPosition में प्रवेश करता है क्योंकि पाठ "अवधि = -1" प्रकट होता है, इसलिए यह स्पष्ट है कि -1 मान दे रहा है। मैं सही अवधि मूल्य कैसे प्राप्त कर सकता हूं?
संपादित
मैं और अधिक कोड डाल दिया और यह भी getCurrentPosition डायन काम नहीं कर रहा जोड़ें। मैंने अलग-अलग $ ('# lblDuracion') डाल दिया। ('Span') ढूंढें। टेक्स्ट ('enters'); विभिन्न संख्याओं के साथ यह देखने के लिए कि 'lblDuracion' में क्या मूल्य दिखाई देता है और यह 'enters5' है, लेकिन यह लाइन $ ('# lblEstado') से भी गुजरता है। ('span') ढूंढें। टेक्स्ट (objReproductor.getDuration()); वह -1 देता है।
धन्यवाद। मैंने पहले ही मीडिया() कन्स्ट्रक्टर के लिए फोनगैप पर दस्तावेज़ों की जांच की है। मैंने उस उदाहरण का पालन करने की कोशिश की जो वहां दिखाई देता है लेकिन यह मेरे लिए काम नहीं करता है। मुझे पता है कि मान -1 का मतलब है कि अवधि अज्ञात है लेकिन अवधि अज्ञात क्यों है? ऐसा इसलिए होना चाहिए क्योंकि यह एक त्रुटि है क्योंकि यह ठीक अवधि के साथ एक सामान्य एमपी 3 फ़ाइल का उपयोग कर रहा है। –
यह निश्चित रूप से "त्रुटि" नहीं है जबकि ऑनर कैरबैक ट्रिगर नहीं किया गया है - अनुमान लगाएं कि यह केवल स्थानीय फ़ाइलों के साथ काम करता है - जबकि पथ के साथ थोड़ा अजीब है उदाहरण के साथ/android_assets/... सबसे अच्छा pratice ऑनर कॉलबैक पर एक फ़ंक्शन को भी हुक करता है और इसे कंसोल करने के लिए आउटपुट लॉग करता है (लेकिन मुझे लगता है कि यह भी ट्रिगर नहीं किया जाएगा)। यह सी नहीं है और वापसी मान -1 को एक त्रुटि नहीं होने के लिए दस्तावेज किया गया है। –
मैं/android_assets/का उपयोग कर रहा हूं ... पथ और गीत चल रहा है इसलिए नया मीडिया (...) अच्छी तरह से काम कर रहा है। लेकिन मुझे नहीं पता कि getDuration() विधि हमेशा क्यों लौटाती है -1। –