1

私のアプリケーションはShoutCastStreamingを再生し、ターゲットOSは1.6以上です。NPRアプリケーションからいくつかのコードをいくつか変更して適用しました。

これがコードです

mediaPlayer = new MediaPlayer();
mediaPlayer.reset();
mediaPlayer.setDataSource(url);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
// Log.d(LOG_TAG, "Preparing: " + playUrl);
mediaPlayer.prepareAsync();
mediaPlayer.start();`

コードはシミュレーターまたはデバイスでは何も再生しません(2.1を使用したSamsung Galaxyでのテスト)。


これがLogCatメッセージです。

再生しようとしていますhttp://88.191.81.31:8206
12-08 14:16:42.229:WARN / MediaPlayer(5520):info / warning(1、26)
12-08 14:16:42.239:ERROR / PlayerDriver(1870 ):コマンドPLAYER_INITがエラーまたは情報で完了しましたPVMFFailure
12-08 14:16:42.239:ERROR / MediaPlayer(5520):エラー(1、-1)
12-08 14:16:42.239:WARN / PlayerDriver(1870): PVMFInfoErrorHandlingComplete
12-08 14:16:42.259:ERROR / MediaPlayer(5520):状態0で呼び出され始めました
12-08 14:16:42.259:ERROR / MediaPlayer(5520):エラー(-38、0)
12-08 14: 16:42.299:INFO / MediaPlayer(5520):情報(1,26)
12-08 14:16:42.299:エラー/ MediaPlayer(5520):エラー(1、-1)
12-08 14:16:42.304:エラー/ MediaPlayer(5520):エラー(-38,0)


ここに質問があります。1.デバイスで何が起こっているのか教えていただけますか?2.このエラーを解決する方法は?

4

1 に答える 1

4

電話するのがstart()早すぎます。MediaPlayerの Javadocs はそれを説明しています (写真を見てください):

  1. に電話prepare()する前に電話する必要がstart()あるか、または

  2. を呼び出して、呼び出されるprepareAsync()のを待ってOnPreparedListener.onPrepared()から、(おそらくこのメソッド内で) call を呼び出しますstart()

更新しました:

Shoutcast ストリームは、2.2 でのみネイティブにサポートされています。以前のバージョンでは、応答プロトコルを ICY (shoutcast) からメディアプレーヤーがサポートする HTTP に変更するローカル プロキシを作成する必要があります。これを見てください:

http://code.google.com/p/npr-android-app/source/browse/trunk/Npr/src/org/npr/android/news/StreamProxy.java

これは以前に議論されました:

Android でシャウトキャストを聞く

于 2010-12-08T09:35:08.440 に答える