2017-04-10 4 views
0
lokalen laden

Manche Dinge seltsam passiert, wenn ich android Mediaplayer verwenden, um einig Audio-Stream von service.Here zu spielen ist mein Audio-Stream url: http://7xk2r8.com1.z0.glb.clouddn.com/rNeDSn1Octc Wenn ich benutze es mit Mediaplayer wie folgt aus:Android Mediaplayer kann die Audiodatei nicht online spielen, aber gut funktionieren, wenn das gleiche von

mediaPlayer.setDataSource("http://7xk2r8.com1.z0.glb.clouddn.com/rNeDSn1Octc") 

die onCompleteListener sofort aufgerufen wird

Aber wenn ich die Datei von oben uRL zu android-Gerät herunterladen und verwenden Mediaplayer es wie folgt aus lokalen zu laden:

mediaPlayer.setDataSource("local path") 

Alles funktioniert gut!

Ich denke, die Bugs können aus der Stream-Datei selbst, aber ich weiß nicht warum, ich bin seit etwa 2 Wochen darin verloren, Hilfe !!!!!!

PS: Ich habe den einfachsten Code für MediaPlayer verwendet, also denke ich, es ist in Ordnung mit meinem Code, ich bin sicher, dass die Bugs von Audio-Stream-Datei selbst, könnten Sie die Datei testen? Die Datei-URL oben ist völlig öffentlich. Vielen Dank!

+0

onCompleteListener wird unmittelbar nach dem Mediaplayer starten – Bruce

+0

Die Android-Version 22 ist aufgerufen werden – Bruce

Antwort

0

Ich habe das gleiche Problem. Der Mediaplayer kann manchmal die Ursache des Netzwerk-Proxys usw. nicht laden. Sie könnten prepareAsync() aufrufen, aber niemals auf onPrepared(). So füge ich ein boolesches Flag wie folgt:

@Override 
public void onPrepared(MediaPlayer mp) { 
    isPrepared = true;} 

@Override 
public void onCompletion(MediaPlayer mp) { 
    if(isPrepared) {// Do your code} 
Verwandte Themen