2017-09-28 1 views
2

Ich bin total darin verloren. Ich fand den Code ziemlich einfach und fand in der Dokumentation keinen Grund, warum eine so große negative Zahl zurückgegeben würde. Der Code ist wie folgtMediaPlayer getDuration gibt zurück -1412558917

private int getDuration(String audioPath) throws Exception { 
    mediaPlayer = new MediaPlayer(); // This variable was created globally 
    mediaPlayer.setDataSource(audioPath); 
    return mediaPlayer.getDuration(); // Here it returns -1412558917 in every audio file i record, no matter if it's 3 seconds long or 8 

} 

Ich denke, dass es keine Rolle spielt, wie ich es aufnehmen, aber wenn ich mich nicht irre werde ich den Code hinzufügen. Das Format, in dem ich die Datei speichere, ist 3gp. Ich bin in der Lage, das Audio danach zu reproduzieren, so dass ich weiß nicht, was könnte das Problem

Dank

Antwort

1

Haben Sie versucht werden, das Hinzufügen mediaPlayer.prepare();, bevor Sie die Dauer zurückkehren?

+0

Ich fühle mich jetzt dumm. Ich konnte es auf diese Weise lösen. Hast du einen Link, wo ich lesen kann, um besser zu verstehen, warum das nötig ist? Vielen Dank! –

+0

Jederzeit :) denken Sie daran, die Antwort als akzeptiert zu markieren, wenn es für Sie arbeitete. Sie können hier mehr über Mediaplayer lesen - https://developer.android.com/reference/android/media/MediaPlayer.html –

Verwandte Themen