【问题标题】:How can I show song duration and circular seekbar如何显示歌曲时长和循环搜索栏
【发布时间】:2019-04-01 14:52:40
【问题描述】:

我是 Android 初学者,我正在创建一个音乐应用,但我需要在我的应用上显示歌曲时长和循环搜索栏

【问题讨论】:

标签: android audio-player android-music-player


【解决方案1】:

我使用了循环搜索栏,请看示例....

你必须在你的 Gradle 依赖中实现这个

 implementation 'me.tankery.lib:circularSeekBar:1.1.7'

然后在你的xml中实现它在你自己的尝试中......

<me.tankery.lib.circularseekbar.CircularSeekBar
    android:id="@+id/circularSeekBar"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginBottom="8dp"
    app:cs_circle_color="#0000ff"
    app:cs_circle_progress_color="#ff0000"
    app:cs_circle_stroke_width="4dp"
    app:cs_pointer_color="#ff0000"
    app:cs_pointer_stroke_width="8dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

在你的活动中

CircularSeekBar seekBar=findViewById(R.id.circularSeekbar);

使用媒体播放器设置搜索栏...将 setProgress 代码放入处理程序中以每秒更新搜索栏

            seekBar.setMax(mediaPlayer.getDuration());
            seekBar.setProgress(mediaPlayer.getCurrentPosition());

seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                @Override
                public void onProgressChanged(SeekBar seekBar, float 
progress, boolean fromUser) {

                     int h = Math.round(progress);
 //In the above line we are converting the float value into int because 
// media player required int value and seekbar library gives progress in float
                    if (mediaPlayer != null && fromUser) {
                        mediaPlayer.seekTo(h);
                    }
                }

                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {

                }

                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {

                }
            });

我没有提供图片,但它工作正常

【讨论】:

  • 它给了我确切的看法
  • 但是 myMediaPlayer.seekTo(seekBar.getProgress());这个方法不行
  • 因为您使用无效的方法尝试使用 seekbar 更改侦听器以使用 seekbar 将您的媒体播放器设置在特定位置只需查看编辑后的答案,如果对您有帮助,请不要忘记标记此内容
猜你喜欢
  • 2014-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-22
  • 2016-09-04
  • 2019-10-22
  • 1970-01-01
相关资源
最近更新 更多