1

を使用してストリーミングするために StreamProxy クラスを使用してMediaPlayerいます。だから、私はローカルサーバーを起動するために次のようにいくつかのコードを書きました:

ProxyStream proxyStream = new ProxyStream();
proxyStream.init();
proxyStream.start();

これで、ローカル サーバーが正常に作成され、特別なポートが取得されました。(port 41257得られた)。リンクを として試すことで Web ファイルにアクセスできることはわかっていますhttp://127.0.0.1:41257/http://printf.ir/music/01.mp3。今、私は MediaPlayer オブジェクトを使用してストリーミングし、次のようにコードを試してみたい:

this.mediaPlayer.setDataSource("127.0.0.1:41257/http://printf.ir/music/01.wma");
this.mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
this.mediaPlayer.prepare();

実行時に、コードの 3 行目で例外が発生し、ここに貼り付けました。

05-17 18:49:49.989: W/System.err(10444): java.io.IOException: Prepare failed.: status=0x1
05-17 18:49:49.989: W/System.err(10444): at android.media.MediaPlayer.prepare(Native Method)
05-17 18:49:49.989: W/System.err(10444): at com.exmaple.stream.StreamMediaPlayerActivity.onClick(StreamMediaPlayerActivity.java:83)
05-17 18:49:49.989: W/System.err(10444): at android.view.View.performClick(View.java:2485)
05-17 18:49:49.989: W/System.err(10444): at android.view.View$PerformClick.run(View.java:9080)
05-17 18:49:49.989: W/System.err(10444): at android.os.Handler.handleCallback(Handler.java:587)
05-17 18:49:49.989: W/System.err(10444): at android.os.Handler.dispatchMessage(Handler.java:92)
05-17 18:49:49.989: W/System.err(10444): at android.os.Looper.loop(Looper.java:130)
05-17 18:49:49.989: W/System.err(10444): at android.app.ActivityThread.main(ActivityThread.java:3687)
05-17 18:49:49.989: W/System.err(10444): at java.lang.reflect.Method.invokeNative(Native Method)
05-17 18:49:49.989: W/System.err(10444): at java.lang.reflect.Method.invoke(Method.java:507)
05-17 18:49:49.989: W/System.err(10444): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
05-17 18:49:49.989: W/System.err(10444): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
05-17 18:49:49.989: W/System.err(10444): at dalvik.system.NativeStart.main(Native Method)

MediaPlayer を使用してストリーミングするにはどうすればよいですか?! この問題を解決するのを手伝ってください。

よろしくお願いします:)

4

1 に答える 1

0

あなたは次のようなことを試しましたか

private void initMediaPlayer() {
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mediaPlayer.start();
statusText.setText("Playing...");
}
});
}

これは、 MediaPlayer for Online Streamsを使用するプロセス全体を実行するチュートリアルです。これは、チュートリアルの2番目の部分です...約3か月前に、プロジェクトの1つでこのチュートリアルを使用したので、機能します。それ前

于 2012-05-24T08:40:24.137 に答える