2017-12-20 7 views
0

URLからmp3を再生しようとしています。しかし、そのファイルをオンラインで再生するにはあまりにも多くの時間を要するため、このユーザーは進行状況のダイアログが消えるまで深刻な問題が発生するまで待たなければなりません。私は音楽を再生する時間を短縮できます。私のURLとコードはURLからmp3を再生するには時間がかかりすぎます

です

URL:[http://ice31.securenetsystems.net/STUDIO1?type=.mp3][1]

public class Player extends AsyncTask<String, Void, Boolean> { 
    private Context context; 
    private String stationUrl; 
    public static MediaPlayer mediaPlayer = new MediaPlayer(); 
    private boolean initialStage = true; 
    private boolean playPause; 
    public Boolean prepared = false; 
    public ProgressDialog progressDialog = null; 


    public Player(String stationUrl,Context context) { 
     this.stationUrl = stationUrl; 
     this.context = context; 
    } 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     CommonUtils.showProgress(context); 
    } 

    @Override 
    protected Boolean doInBackground(String... strings) { 

     try { 

      mediaPlayer.setDataSource(stationUrl); 
      mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
       @Override 
       public void onCompletion(MediaPlayer mediaPlayer) { 
        initialStage = true; 
        playPause = false; 
        mediaPlayer.stop(); 
        mediaPlayer.reset(); 
       } 
      }); 

      mediaPlayer.prepare(); 
      prepared = true; 

     } catch (Exception e) { 
      prepared = false; 
     } 

     return prepared; 
    } 

    @Override 
    protected void onPostExecute(Boolean aBoolean) { 
     super.onPostExecute(aBoolean); 
     CommonUtils.dismissProgress(); 
     mediaPlayer.start(); 
     mediaPlayer.pause(); 
     if (!CommonUtils.getPreferencesString(context,AppConstants.STATUS).equalsIgnoreCase("")) 
     { 
      if (CommonUtils.getPreferencesString(context,AppConstants.STATUS).equalsIgnoreCase("One")) 
      { 
       mediaPlayer.start(); 
      } 
     } 
     initialStage = false; 
    } 


} 
+0

なぜ 'AsyncTask <>'で使用しますか? – salman

答えて

2

MediaPlayerは、オーディオストリームとうまく動作しません。 MediaPlayerのバッファリングの時間を短縮する方法はありません。ドキュメントから、 https://developer.android.com/reference/android/media/AudioTrack.html がより良い選択であるか、より複雑であるがストリーミングに適しているhttps://developer.android.com/reference/android/media/MediaExtractor.htmlさえあるようです。

+0

私はExoPlayerを使用してこの問題を克服しました。 https://developer.android.com/guide/topics/media/exoplayer.html –

関連する問題