2010-12-08 4 views
1

私のアプリケーションはShoutCastストリーミングを再生し、ターゲットOSは1.6以上です。私はいくつかの変更を加えてNPRアプリケーションからいくつかのコードを適用しました。ここでAndroid Shoutcast:1.6でShoutCastストリーミングを再生するのに役立ちます

シミュレータやデバイス(2.1とサムスンギャラクシーでのテスト)で何かを演じるdoesnotコード

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

コードです。


ここにLogCatメッセージがあります。

http://88.191.81.31:8206
12-08 14遊ぶのに約:16:42.229:WARN/MediaPlayerの(5520):情報/警告(1、26)
12-08 14:16:42.239:ERROR/PlayerDriverを(1870):コマンドPLAYER_INITがエラーまたは情報PVMFFailureで完了しました
12-08 14:16:42.239:エラー/ 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:ERROR/MediaPlayer 5520):エラー(1、-1)
12-08 14:16:42.304:ERROR/MediaPlayerの(5520):エラー(-38,0)


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

+0

シャウトキャストを再生する方法のhttp://stackoverflow.com/a/8833346/265167 –

答えて

4

start()はあまりにも早く電話しています。 MediaPlayerのJavadocのは(絵を見て)それを説明する:

  1. あなたはおそらくあなたが(そして、prepareAsync()を呼び出し、OnPreparedListener.onPrepared()が呼び出されるのを待つstart()、または

  2. を呼び出す前に、あなたはprepare()を呼び出す必要がありますどちらかこのメソッド内で)start()を呼び出します。

更新:

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

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

これは、以前に議論されている:?

Listen to a shoutcast with Android

+0

私が持っていますこれを試した。それがうまくいきません。ここに更新されたコード 'mediaPlayer = new MediaPlayer();があります。 \t \t \t mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); \t \t \t mediaPlayer.setDataSource(url); \t \t \t mediaPlayer.prepareAsync(); \t \t \t mediaPlayer.setOnPreparedListener(新しいOnPreparedListener(){ \t \t \t \t @Override \t \t \t \t公共ボイドonPrepared(MediaPlayerの融点){ \t \t \t \t \t Log.i( "IN"、 "準備されたリスナー」); \t \t \t \t \t mediaPlaye r.start(); \t \t \t \t} \t \t \t}); 'LogCatメッセージは、次のコメントです。 – Prasham

+0

WARN/MediaPlayer(6592):info/warning(1,26) 12-08 15:18:18.214:INFO/MediaPlayer(6592):情報(1,26) 12-08 15:18:18.219:エラー/ PlayerDriver(1870):コマンドPLAYER_INITがエラーまたは情報PVMFFailureで完了しました 12-08 15:18:18.219:ERROR/MediaPlayer(6592):エラー(1、-1) 12-08 15:18:18.219:エラー最初に: 'setOnPreparedListener(..)の後に' prepareAsync() 'を呼び出す必要があります:/ MediaPlayer(6592):エラー(1、-1) 12-08 15:18:18.219:WARN/PlayerDriver(1870):PVMFInfoErrorHandlingComplete – Prasham

+0

'。 2番目: 'setDataSource()'の間にエラーがスローされました。 –

関連する問題