Android媒体播放器可以使用某些网址但不能使用其他网址

时间:2015-12-22 05:48:01

标签: java android

如果我使用此网址,我的代码工作正常

  

http://programmerguru.com/android-tutorial/wp-content/uploads/2013/04/hosannatelugu.mp3

但如果我尝试使用此URL,则会出现以下异常

java.io.IOException: Prepare failed.: status=0x1
android.media.MediaPlayer.prepare(Native Method)
//after some lines


start called in state 0
   error (-38, 0)

这是我使用的第二个网址

  

http://hcservices.byethost4.com/hosannatelugu.mp3

如果你打开文件,你会发现两者都是一回事。之前我认为.mp3文件已损坏,但事实并非如此!

我猜问题与主持人或其他东西有关,但我已经没想到了。

这是我的代码。

public class MainActivity extends AppCompatActivity {
    Button play;
    Button stop;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        play = (Button) findViewById(R.id.play);
        play.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Uri myUri = Uri.parse("http://hcservices.byethost4.com/hosannatelugu.mp3");
                MediaPlayer mPlayer = new MediaPlayer();
                try {
                    String a = "http://hcservices.byethost4.com/hosannatelugu.mp3";
                    mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

                    mPlayer.setDataSource(a);

                    mPlayer.prepare();

                } catch (Exception e) {
                    e.printStackTrace();
                }
                mPlayer.start();
            }
        });
    }
}

1 个答案:

答案 0 :(得分:0)

要在此处复制Android网站上的一些文档。也许它会帮助你。

  

通过HTTP流媒体从远程URL播放看起来像这样

String url = "http://........"; // your URL here
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(url);
mediaPlayer.prepare(); // might take long! (for buffering, etc)
mediaPlayer.start();

由于您的代码已经是这样,我假设您的问题是这个额外的注意事项。

  

注意:如果您要传递URL以流式传输在线媒体文件,则该文件必须能够逐步下载。

因此,如果第一个链接有效,但第二个链接没有,则意味着第二个主机不支持“渐进式下载”。这是服务器的问题,而不是您的应用程序或代码。

来源:http://developer.android.com/guide/topics/media/mediaplayer.html