繁体   English   中英

如何在流式传输之前知道音频歌曲的持续时间?

[英]How to know the Duration of audio song before streaming?

我正在申请 Stream 音频歌曲。 在自定义媒体播放器中,我必须显示该音频文件的总持续时间。 如果一首音频歌曲是 SDCard,我可以使用它知道它的持续时间

MediaPlayer player;

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

但在我的情况下,音频文件在服务器上,所以我必须 stream 它。

最好的方法是什么?

这可能会对您有所帮助: 使用 android 媒体播放器 class 的流式 mp3 示例 一旦为要流式传输的文件调用 prepare() ,相应的数据可能是可用的。

我认为这将为您提供要流式传输的文件的长度。 在声明 MediaPlayer mp object

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

如需进一步参考,请通过以下链接 go: http://developer.android.com/reference/android/media/MediaPlayer.html#getDuration%28%

使用以下代码,您无需使用任何库即可获得持续时间

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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