从外部网站播放流时出现Android媒体播放器错误(1,-1004)

从外部网站播放流时出现Android媒体播放器错误(1,-1004),android,android-mediaplayer,Android,Android Mediaplayer,我试图在android应用程序中播放网站上的音频文件,但遇到媒体播放器错误(1,-1004) 当我在windows media player或vlc player中使用流媒体链接时,它工作正常。为什么android media player会生成此错误?我的代码是 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setCon

我试图在android应用程序中播放网站上的音频文件,但遇到媒体播放器错误(1,-1004)

当我在windows media player或vlc player中使用流媒体链接时,它工作正常。为什么android media player会生成此错误?我的代码是

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_play_file);
    // Show the Up button in the action bar.
    setupActionBar();

     playSong("http://WEBSITE/001.mp3");
}

private void playSong(String songPath) {
    MediaPlayer mP = new MediaPlayer();
    try {
        mP.setDataSource(songPath);
        mP.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mP.prepare();
        mP.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                // TODO Auto-generated method stub
                mp.start();

            }
        });

    } catch (IllegalArgumentException e) {
          e.printStackTrace();
    } catch (IllegalStateException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }


}
使用下面的代码

MediaPlayer mP = new MediaPlayer();
        mP.setAudioStreamType(AudioManager.STREAM_MUSIC);
        try {
            mP.setDataSource(songPath);
            mP.setOnErrorListener(this);
            mP.setOnPreparedListener(this);
            mP.prepareAsync();
        } catch (IllegalArgumentException e) {

            e.printStackTrace();
        } catch (IllegalStateException e) {

            e.printStackTrace();
        } catch (IOException e) {

            e.printStackTrace();
        }
    }

这可能是解决方案:

<permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.INTERNET" />
<permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<use-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


多亏了这一点-

你有我最新的答案吗??请看问题是否解决,然后接受答案并提出我们可以着手解决下一个问题的建议…您在哪里添加了mp.start();在onPrepared的overrideen方法中,如下所示:@Override public void onPrepared(MediaPlayer play){if(progressDialog!=null&&progressDialog.isShowing()){progressDialog.disease();}play.start();}