Android 2.2 MediaPlayer funktioniert gut mit einer SHOUTcast URL aber nicht mit dem anderen

Bitte sehen Sie den Code, den ich für Streaming Shoutcast Stream, es funktioniert mit einer URL, aber nicht mit dem anderen.

Dies funktioniert:

  • Unterschied zwischen getheight () und getmeasuredheight ()
  • Mit Nachrüstung mit Cookie Beharrlichkeit
  • Senden Sie Whatsapp-Nachricht an einen bestimmten Kontakt
  • Android SDK und Entwickler Guide Offline oder PDF
  • Android Snackbar TextAlignment im Zentrum
  • Android SMS senden, die im SMS-Thread sichtbar ist (keine GUI)
  • Uri myUri = Uri.parse("http://fr3.ah.fm:9000/"); 

    Aber nicht mit diesem:

     Uri myUri = Uri.parse("http://someOtherURL"); 

    SimpleMusicStream.java

     import android.app.Activity; import android.media.AudioManager; import android.media.MediaPlayer; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; public class SimpleMusicStream extends Activity implements MediaPlayer.OnCompletionListener, MediaPlayer.OnPreparedListener, MediaPlayer.OnErrorListener, MediaPlayer.OnBufferingUpdateListener { private String TAG = getClass().getSimpleName(); private MediaPlayer mp = null; private Button play; private Button pause; private Button stop; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); play = (Button) findViewById(R.id.play); pause = (Button) findViewById(R.id.pause); stop = (Button) findViewById(R.id.stop); play.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { play(); } }); pause.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { pause(); } }); stop.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { stop(); } }); } private void play() { Uri myUri = Uri.parse("http://fr3.ah.fm:9000/"); try { if (mp == null) { this.mp = new MediaPlayer(); } else { mp.stop(); mp.reset(); } mp.setDataSource(this, myUri); // Go to Initialized state mp.setAudioStreamType(AudioManager.STREAM_MUSIC); mp.setOnPreparedListener(this); mp.setOnBufferingUpdateListener(this); mp.setOnErrorListener(this); mp.prepareAsync(); Log.d(TAG, "LoadClip Done"); } catch (Throwable t) { Log.d(TAG, t.toString()); } } @Override public void onPrepared(MediaPlayer mp) { Log.d(TAG, "Stream is prepared"); mp.start(); } private void pause() { mp.pause(); } private void stop() { mp.stop(); } @Override public void onDestroy() { super.onDestroy(); stop(); } public void onCompletion(MediaPlayer mp) { stop(); } public boolean onError(MediaPlayer mp, int what, int extra) { StringBuilder sb = new StringBuilder(); sb.append("Media Player Error: "); switch (what) { case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK: sb.append("Not Valid for Progressive Playback"); break; case MediaPlayer.MEDIA_ERROR_SERVER_DIED: sb.append("Server Died"); break; case MediaPlayer.MEDIA_ERROR_UNKNOWN: sb.append("Unknown"); break; default: sb.append(" Non standard ("); sb.append(what); sb.append(")"); } sb.append(" (" + what + ") "); sb.append(extra); Log.e(TAG, sb.toString()); return true; } public void onBufferingUpdate(MediaPlayer mp, int percent) { Log.d(TAG, "PlayerService onBufferingUpdate : " + percent + "%"); } } 

    Main.xml:

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:text="Play" android:id="@+id/play" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <Button android:text="Pause" android:id="@+id/pause" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <Button android:text="Stop" android:id="@+id/stop" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> </LinearLayout> 

    Die Log-Katze zeigt Fehler:

     NuHTTPDataSource(33): Server did not give us the content length! Media Player Error: Unknown (1) -2147483648 Media Player Error: Unknown (1) -1002 

    Kann mir jemand helfen, es zu beheben?

    BEARBEITEN:

    Nur um mit Ihnen Leute zu teilen, dass unser aktueller Code mit Android 2.1 und kleineren Versionen arbeitet, aber nicht mit Android 2.2 oder höher arbeitet .

    Vielen Dank

  • Was ist der Unterschied zwischen @ id / und @ + id / in android?
  • Nur beobacht viewHolder mit aus der Datenbank abgerufenen Meldungen?
  • MediaController immer auf Android anzeigen
  • Gleiten Vorspannung nicht im Cache speichern
  • Android Systrace: Unerwarteter Fehler (Conversion = ';')
  • Java.lang.UnsatisfiedLinkError: Stlport_shared konnte nicht geladen werden: findLibrary hat null zurückgegeben (tess-two)
  • 5 Solutions collect form web for “Android 2.2 MediaPlayer funktioniert gut mit einer SHOUTcast URL aber nicht mit dem anderen”

    Shoutcast mp3 Streaming von Android 2.2 onwards wird nativ unterstützt.

    Unten 2.2 kann das Android-Betriebssystem keine Shoutcast-Streams nativ spielen, ohne einen Proxy auf dem Stream-Ende oder eine Stream-Proxy-Klasse auf dem Gerät zu verwenden, um den Stream zu erfassen und an den Audioplayer zu übergeben, genau wie NPR .

    Audio / Aacp-Streaming wird nicht direkt unterstützt. Hierfür kannst du ffmpeg, opencore oder faad2 Bibliothek benutzen, um es in PCM zu dekodieren und mit audiotrack zu spielen. Referenz

    Problem kodiert in Audio / aacp

    Problem ist, dass aacp nicht von Android Media Player korrekt gerendert wird. Du musst einen anderen Codec ausprobieren oder deinen eigenen Decoder schreiben.

    Mediaplayer unterstützt nur diese Formate wie in den Android-Dokumenten dokumentiert.

    Einige Ströme können das befriedigen, aber einige werden nicht

    Es gibt einen Freeware Advanced Audio (AAC) Decoder für Android . Sie können dies für Hilfe und Anleitung verwenden oder Multiplayer-Klasse verwenden, um aac Audio zu spielen. Es gibt eine Beispiel-App und Bibliothek, um Ihnen zu helfen, zu verstehen. Ich habe diese Bibliothek benutzt, um Shoutcast online Streams zu spielen. Ich spielte sowohl AAC als auch MP3 mit Multiplayer-Klasse in der Bibliothek zur Verfügung gestellt

    Hoffe das hilft

    Schließlich habe ich eine einfache Shoutcast-Streaming-App bekommen. Versuche es Ändern Sie einfach Streaming-URL in StreamService.java .

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.