enquiry about MediaPlayer.setDatasource(URL);



我是安卓编程的初学者,我想编程mp3应用程序从URL调用一些mp3文件,所以当我在安卓开发人员中显示"媒体播放器"时,我将URL放在setDataSource中,它工作正常,但问题是"活动"需要很多时间来显示它,有时应用程序会崩溃。这是我代码的一部分:

    file_url = Mp3_Linkes[num];
    //Set Source
    try {   
        mp.setDataSource(file_url); 
    } catch (Exception e) {
        Toast.makeText(this, "Source Error !!", Toast.LENGTH_LONG).show();
    }

    //Prepare
    try {
        mp.prepare();
    }catch(Exception e)
    {
        Toast.makeText(this, "Prepare Error !!", Toast.LENGTH_LONG).show();
    }

    //Start
    mp.start();

您的活动被阻止,因为您正在主线程(UI线程)上调用prepare

相反,当从远程源加载时,您可以使用prepareSynch和OnPreparedListener进行特殊启动:

代码:

try {
     mp.setDataSource(file_url);
    mp.setOnPreparedListener(new OnPreparedListener() {
         public void onPrepared(MediaPlayer player) {
                player.start();
        }
     });
    mp.prepareAsync();

相关内容

  • 没有找到相关文章

最新更新