2

私のアプリケーションでは、MediaPlayer を使用してライブストリーム リンクを再生しています。

これが私のコードです

progress = ProgressDialog.show(ctx, "",
              "Loading..", true);

new Thread(new Runnable() {
              @Override
              public void run()
              {

                runOnUiThread(new Runnable() {
                  @Override
                  public void run()
                  {
                      mediaPlayer = new MediaPlayer();
                        try
                        {
                            mediaPlayer.reset();
                            mediaPlayer = new MediaPlayer();
                            mediaPlayer.setDataSource(radioUrl);
                            mediaPlayer.prepare();
                            mediaPlayer.start();

                        }catch (Exception e) {
                            e.printStackTrace();
                            // TODO: handle exception


                        }
                                progress.dismiss();
                  }
                });
              }
            }).start();

次のエラーが発生します

 I/MediaPlayer(23237): mContext is null, can't getMirrorDisplayStatus!!!

そして、私が再生しようとしているいくつかのリンクで

 MediaPlayer Error (-38,0)
4

1 に答える 1

4

URL からダウンロードしたサウンドを で再生する準備ができていない場合、このエラー ( MediaPlayer Error (-38,0)) が表示されます。mediaPlayer

1 つの回避策は、準備ができたときにメディア プレーヤーを開始するリスナーを設定することです。

mediaPlayer.setDataSource(radioUrl);
mediaPlayer.setOnPreparedListener(this);
mediaPlayer.prepareAsync();

@Override
public void onPrepared(MediaPlayer player) {
    player.start();
}

については、 null になるI/MediaPlayer(23237): mContext is null, can't getMirrorDisplayStatus!!!理由を確認する必要があります。mContextあなたが提供したコードでは、助けるのは難しいでしょう。

編集:

匿名クラスを使用してこれを実装することもできます。

         MediaPlayer mediaPlayer = new MediaPlayer();
        mediaPlayer.setDataSource(radioUrl);
        mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {            
            @Override
            public void onPrepared(MediaPlayer mp) {
                mp.start();
            }
        });
    mediaPlayer.prepareAsync();
于 2013-05-23T09:41:53.830 に答える