Search code examples
androidmedia-player

MediaPlayer not playing live stream for some audio file


some audio file url not playing in mediaplayer here my code

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

I noticed that small audio files easily played but large audio file not playing. i also try FFmpegMediaPlayer library intead of MediaPlayer then large audio file played but my apk file size increase to 32 MB. so i can't use FFmpegMediaPlayer for play audio through url. Please suggest me best library or native code for play large audio file as live stream.

Thanks in advance


Solution

  • i use following library

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

    now large file playing perfectly.

    Use

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