简体   繁体   中英

How to know the Duration of audio song before streaming?

I am making an application for Stream audio song. In Custom media player, i have to show the total duration of that audio file. If a audio song will be SDCard, i can know its duration using

MediaPlayer player;

public double duration() {
        return player.getDuration();
    }

But in my case audio file is on the server, so i have to stream it.

What is the best approach?

This might help you: Example of Streaming mp3 with android media player class . The respective data is probably available, once prepare() is called for the file to be streamed.

I think this will give you the length of the file to be streamed. After the declaring the MediaPlayer mp object

 mp.start();
 totalDur=mp.getDuration();//will give you the duration in milliseconds.

For further reference please go through the following link: http://developer.android.com/reference/android/media/MediaPlayer.html#getDuration%28%29

with below code you can get duration without using any library

player = new MediaPlayer();
player.setDataSource(YOUR_URL);
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.prepareAsync();

        player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mediaPlayer) {
                seekBar.setMax(mediaPlayer.getDuration());
                player.start();
            }
        });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM