Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 来自url的MediaPlayer流_Java_Android_Android Mediaplayer - Fatal编程技术网

Java 来自url的MediaPlayer流

Java 来自url的MediaPlayer流,java,android,android-mediaplayer,Java,Android,Android Mediaplayer,我有一个简单的应用程序,我想从一个url播放mp3 当我将此代码添加到OnCreate时,应用程序在打开时崩溃: try { mediaPlayer.setDataSource("http://www.freesfx.co.uk/rx2/mp3s/9/10183_1367780535.mp3"); mediaPlayer.prepare(); } catch (IOException e) { e.printStackTrace();

我有一个简单的应用程序,我想从一个url播放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();
            }
        }
    });
}

}问题是因为MediaPlayer未初始化。这就是为什么在尝试使用时会出现空指针异常

只需添加:

mediaPlayer = new MediaPlayer();

在调用MediaPlayer.setDataSource方法之前,问题在于MediaPlayer未初始化。这就是为什么在尝试使用时会出现空指针异常

只需添加:

mediaPlayer = new MediaPlayer();

在调用MediaPlayer.setDataSource方法之前,请使用LogCat检查与崩溃相关的Java堆栈跟踪:使用LogCat检查与崩溃相关的Java堆栈跟踪: