【问题标题】:Buffered level of music showing in seekbar搜索栏中显示的缓冲音乐级别
【发布时间】:2019-05-28 01:57:09
【问题描述】:

你好。如您所见,我想在 android 音乐播放器中显示流向用户的缓冲级别的媒体。
我为这个问题设想的解决方案是:
我是否应该创建一个具有透明背景的搜索栏和一个进度条,并将进度条重叠到搜索栏,而 progreesbar 显示缓冲的音乐级别。

但我不确定这个策略。有没有人可以帮助我找到实现此问题目标的最佳方法。

【问题讨论】:

    标签: android progress-bar media-player android-seekbar


    【解决方案1】:

    首先应该在活动中实现OnBufferingUpdateListener,然后像这样设置 onBufferingUpdate:

    public void onBufferingUpdate(MediaPlayer arg0, int percent) {
        /** Method which updates the SeekBar secondary progress by current song loading from URL position*/
        seekBarProgress.setSecondaryProgress(percent);
    }
    

    【讨论】:

    • 它应该是 seekBar.setSecondaryProgress( seekBar.getMax() * percent/100) 使其工作。确保您已经先将百分比转换为小数,这样当您将其除以 100 时,您会得到一个十进制值而不是 0。
    【解决方案2】:

    只是因为直接设置百分比不起作用。这是对我有用的代码。

    mediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() {
            @Override
            public void onBufferingUpdate(MediaPlayer mediaPlayer, int percent) {
                double per = percent * 1.00;
                per = (per / 100);
                double f = (seekBar.getMax() * 1.00);
                f = f * per;
                if (percent < binder.seekBar.getMax()) {
                    seekBar.setSecondaryProgress((int) f);
                }
            }
        });
    

    这些 int 到 double 的转换是必要的,因为如果结果是 0.12 或 0.xx,int 除以 100 会得到 0。

    【讨论】:

      猜你喜欢
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多