来自url的MediaPlayer流

时间:2016-03-26 23:13:51

标签: java android android-mediaplayer

我有一个简单的应用程序,我想从网址播放mp3。

当我将此代码添加到OnCreate时,应用程序在打开时崩溃:

try {
        mediaPlayer.setDataSource("http://www.freesfx.co.uk/rx2/mp3s/9/10183_1367780535.mp3");
        mediaPlayer.prepare();
    } catch (IOException e) {
        e.printStackTrace();
    }

为什么呢?这部分代码出了什么问题?

完整代码:

  public class MediaStreamTest extends AppCompatActivity {
ImageButton bPlay;
ImageButton bStop;
MediaPlayer mediaPlayer;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_media_stream_test);

    bPlay = (ImageButton)findViewById(R.id.btnPlay);
    bStop = (ImageButton)findViewById(R.id.btnStop);
    try {
        mediaPlayer.setDataSource("http://www.freesfx.co.uk/rx2/mp3s/9/10183_1367780535.mp3");
        mediaPlayer.prepare();
    } catch (IOException e) {
        e.printStackTrace();
    }

    bPlay.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mediaPlayer.isPlaying()) {
                bPlay.setBackgroundResource(R.drawable.ic_play_arrow_24dp);
                mediaPlayer.pause();
            }
            else {
                bPlay.setBackgroundResource(R.drawable.ic_pause_24dp);
                mediaPlayer.start();
            }
        }
    });
}

}

1 个答案:

答案 0 :(得分:3)

问题是因为未初始化MediaPlayer。这就是为什么在尝试使用它时会得到空指针异常的原因。

只需添加:

mediaPlayer = new MediaPlayer();

在调用 MediaPlayer.setDataSource 方法

之前