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

时间:2014-01-10 08:33:58

标签: android android-mediaplayer

我正在尝试从我的Android应用程序中的网站播放音频文件,但它遇到媒体播放器错误(1,-1004)。

当我在Windows媒体播放器或vlc播放器中使用时,流媒体链接工作正常。为什么Android媒体播放器会产生此错误?我的代码是

    @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();
    }


}

2 个答案:

答案 0 :(得分:2)

使用以下代码

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();
        }
    }

答案 1 :(得分:0)

这可能是解决方案:

<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" />

多亏了这个 - https://stackoverflow.com/a/17911777/1193534