从外部网站播放流时出现Android媒体播放器错误(1,-1004)
我试图在android应用程序中播放网站上的音频文件,但遇到媒体播放器错误(1,-1004) 当我在windows media player或vlc player中使用流媒体链接时,它工作正常。为什么android media player会生成此错误?我的代码是从外部网站播放流时出现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
@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();}