MediaPlayer Voorbereiden is mislukt voor afspelen vanaf een externe URL via HTTP-streaming

Ik wil een mp3-bestand afspelen dat op afstand wordt gehost. Wanneer ik de manier zoals getoond in deze link http://developer.android.com/ guide/topics/media/mediaplayer.html krijg ik de foutmelding:

java.io.IOException: voorbereiden mislukt .: status = 0x1

Na het zoeken door het web vond ik een alternatief in deze link http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/ , wat ook niet erg goed werkt. Het downloadt het audiobestand via streaming en maakt een tijdelijk .dat-bestand. Telkens wanneer een ander increment van het bestand wordt gedownload, moet de MediaPlayer worden gestopt om de opgehaalde nieuwe gegevens in de MediaPlayer in te stellen. Het proces speelt de audio af, maar ondergaat enkele kleine pauzes. Het is goed om deze pauzes te hebben omdat er nog niet genoeg gegevens zijn gedownload, maar het is niet goed om de speler te laten pauzeren telkens wanneer nieuwe gegevens worden opgehaald.

Dus mijn vraag is: is er een andere manier om een ​​extern audiobestand te spelen? Waarom doet zich de fout "voorbereiden mislukt" voor? Ik merkte dat het gebeurt met sommige mp3's bestanden, maar niet met anderen. Is er een soort misvormde mp3 voor de MediaPlayer-klasse (en een manier om dit te verhelpen)?

Voorbeeld: http://1cd.palco.fm/a /c/4/5/bandainovation-so-hoje.mp3 . Je krijgt de fout met deze mp3, maar je kunt het met andere spelers spelen (bijvoorbeeld Banshee of Windows Media Player).

Bij voorbaat hartelijk dank

1
Dat is een goede vraag!
toegevoegd de auteur flopes, de bron
Ik heb dit probleem al een hele tijd proberen oplossen ... Ik hoop dat ik iemand krijg die me op zijn minst vertelt wat er mis is met het bestand zelf, aangezien sommige mp3-audiobestanden gewoon goed spelen. Misschien een manier om een ​​misvormde mp3-header of iets dergelijks te repareren ...
toegevoegd de auteur Alesqui, de bron

1 antwoord

Ik denk dat je misschien een specifieke toestemming moet toevoegen aan je AndroidManifest.xml-bestand en je app moet toestaan ​​om internet te gebruiken.


Zorg er ook voor dat je een dataverbinding hebt (ik heb het getest op mijn Samsung Galaxy Ace, dezelfde uitzondering zal optreden wanneer geen draadloos netwerk is ingeschakeld).

0
toegevoegd
Eerlijk gezegd zal alles onder Android 2.2 waarschijnlijk niet consistent werken.
toegevoegd de auteur StackOverflowed, de bron
Niet het geval. Ik heb deze toestemming al ingesteld. De app werkt soepel op Android 2.3 voor alle nummers, maar sommige nummers werken niet op 2.1.
toegevoegd de auteur Alesqui, de bron