Ich habe versucht, MP3s über http mit der in Android integrierten MediaPlayer-Klasse zu streamen. Die Dokumentation würde mir vorschlagen, dass dies so einfach sein sollte wie:
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(URL_OF_FILE);
mp.prepare();
mp.start();
Ich erhalte jedoch wiederholt Folgendes. Ich habe auch verschiedene URLs ausprobiert. Bitte sag mir nicht, dass Streaming auf MP3s nicht funktioniert.
E/PlayerDriver( 31): Command PLAYER_SET_DATA_SOURCE completed with an error or info PVMFErrNotSupported
W/PlayerDriver( 31): PVMFInfoErrorHandlingComplete
E/MediaPlayer( 198): error (1, -4)
E/MediaPlayer( 198): start called in state 0
E/MediaPlayer( 198): error (-38, 0)
E/MediaPlayer( 198): Error (1,-4)
E/MediaPlayer( 198): Error (-38,0)
Jede Hilfe sehr geschätzt, danke S.
android
mp3
android-mediaplayer
audio-streaming
Pandalover
quelle
quelle
Antworten:
einfacher Media Player mit Streaming-Beispiel. Für den XML-Teil benötigen Sie eine Schaltfläche mit der ID button1 und zwei Bilder in Ihrem Zeichenordner mit den Namen button_pause und button_play. Vergessen Sie nicht, die Internetberechtigung in Ihr Manifest aufzunehmen.
quelle
Android MediaPlayer unterstützt das native Streaming von MP3 erst ab 2.2. In älteren Versionen des Betriebssystems scheint es nur 3GP nativ zu streamen. Sie können den Taschenreisecode ausprobieren, obwohl er alt ist (es gibt einen neue Version ) und ich Probleme hatte, ihn klebrig zu machen - er würde stottern, wenn er den Puffer wieder auffüllt.
Die NPR News App für Android ist Open Source und verwendet einen lokalen Proxyserver, um MP3-Streaming in Versionen des Betriebssystems vor 2.2 zu verarbeiten. Sie können den entsprechenden Code in den Zeilen 199-216 (r94) hier sehen: http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android/news/ PlaybackService.java?r=7cf2352b5c3c0fbcdc18a5a8c67d836577e7e8e3
Und das ist die StreamProxy-Klasse: http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android/news/StreamProxy.java?r=e4984187f45c39a54ea6c88f71197762dbe10e72
Die NPR-App erhält beim Streaming manchmal immer noch den "Fehler (-38, 0)". Dies kann ein Threading-Problem oder ein Netzwerkänderungsproblem sein. Überprüfen Sie den Issue-Tracker auf Updates .
quelle
Ich denke, dass Sie versuchen, ein .pls direkt oder ähnliches zu spielen.
Probieren Sie es aus:
1: der Code
2: die .pls-Datei
Diese URL stammt nur als Beispiel von BBC. Es war eine .pls-Datei, die ich unter Linux heruntergeladen habe
und dann habe ich mit vim geöffnet (benutze deinen Lieblingseditor;) und ich habe die echten URLs in dieser Datei gesehen. Leider sind nicht alle .pls so einfach.
Ich habe gelesen, dass 1.6 das Streamen von MP3 über http nicht unterstützen würde, aber ich habe gerade den obigen Code mit Android 1.6 und 2.2 getestet und hatte kein Problem.
Viel Glück!
quelle
Verwenden
quelle
Ich hatte den gleichen Fehler wie Sie und es stellte sich heraus, dass mit dem Code nichts falsch war. Das Problem war, dass der Webserver den falschen Content-Type-Header sendete.
Versuchen Sie es mit Wireshark oder ähnlichem, um festzustellen, welchen Inhaltstyp der Webserver sendet.
quelle
Kein Aufruf mp.start mit einem OnPreparedListener, um den Nullzustand im Protokoll zu vermeiden.
quelle
Suche meine Projekte:
quelle