2017-04-14 59 views
1

一些音頻文件鏈接沒有媒體播放器 在這裏玩我的代碼的MediaPlayer不玩實況流一段音頻文件

mediaPlayer = new MediaPlayer(); 

    if (mediaPlayer != null) { 
     try { 

      String audioUrl = Constants.AudioLink.toString().replace(" ", "%20"); 
      mediaPlayer.setDataSource(audioUrl); 
      mediaPlayer.prepareAsync(); 
      mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() { 
       @Override 
       public boolean onError(MediaPlayer mediaPlayer, int i, int i1) { 
        Progressdialogs.getInstance().closeDialog(); 
        Toast.makeText(AudioPlayActivity.this, "Failed to load audio", Toast.LENGTH_SHORT).show(); 
        return false; 
       } 
      }); 
      mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
       @Override 
       public void onPrepared(MediaPlayer mediaPlayer) { 
        Progressdialogs.getInstance().closeDialog(); 
        finalTime = mediaPlayer.getDuration(); 
        seekbar.setMax((int) finalTime); 
        seekbar.setClickable(false); 
        play(); 
        duration.setVisibility(View.VISIBLE); 
       } 
      }); 


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

我注意到,小音頻文件,輕鬆播放,但大的音頻文件不是在玩。我也嘗試FFmpegMediaPlayer庫intead的MediaPlayer然後播放大音頻文件,但我的apk文件大小增加到32 MB。所以我不能使用FFmpegMediaPlayer通過網址播放音頻。請建議我最好的圖書館或本地代碼播放大型音頻文件作爲直播流。

在此先感謝

+0

嘗試使用ExoPlayer: - https://github.com/google/ExoPlayer – Bhavnik

+0

嘗試設置mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);之前prepareAsync() – AbhayBohra

+0

@AbhayBohra我試過但沒有工作 –

回答

1

我用下面的庫

compile 'com.devbrackets.android:exomedia:3.1.1' 

現在大文件播放完美。

使用

import com.devbrackets.android.exomedia.EMAudioPlayer; 
private EMAudioPlayer mediaPlayer; 
+0

上面的lib工作正常嗎? – Bhavnik

+0

是的,它的工作正常 –

+0

好吧,它是否正在緩慢的互聯網連接正常工作?你試過了嗎? – Bhavnik