Android SeekBar 设置不能被拖动和拖动进度条不影响播放器播放进度

在app 开发中,对于SeekBar的使用是非常广泛的,但是在有些情况下需要禁止拖动进度条,例如在播放器播放音乐进度条的时候,
但是禁止拖动后,又不完美,接下来就来实现播放器进度条既可以拖动,又可以播放歌曲的功能

禁止拖动SeekBar进度条的方法如下:

mMusic_seekBar.setOnTouchListener(new View.OnTouchListener() {
   
            @Override
            public boolean onTouch(View v, MotionEvent event) {
   
                return true;
            }
        }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
要实现 Android 音乐播放器进度条对映 MP3 播放进度,可以通过以下步骤来操作: 1. 首先需要获取 MP3 文件的总时长,可以使用 MediaPlayer 类的 getDuration() 方法来获取。 2. 然后在播放器开始播放 MP3 文件时,可以使用 Handler 和 Runnable 来定时更新进度条进度。具体实现可以参考以下代码: ```java final Handler mHandler = new Handler(); Runnable mRunnable = new Runnable() { @Override public void run() { int currentPosition = mediaPlayer.getCurrentPosition(); int totalDuration = mediaPlayer.getDuration(); // 更新进度条进度 progressBar.setProgress(currentPosition); // 更新播放时间的显示 String currentTime = formatTime(currentPosition); String totalTime = formatTime(totalDuration); tvCurrentTime.setText(currentTime); tvTotalTime.setText(totalTime); // 每隔一秒钟更新一次 mHandler.postDelayed(this, 1000); } }; // 开始播放 MP3 文件 mediaPlayer.start(); // 开始更新进度条进度 mHandler.postDelayed(mRunnable, 1000); ``` 其中,formatTime() 方法可以将毫秒数转换为格式化后的时间字符串,例如 "00:03:45"。 3. 在用户拖动进度条时,可以使用 SeekBar 的 OnSeekBarChangeListener 接口来监听进度条的变化,并调用 MediaPlayer 的 seekTo() 方法来改变播放进度。具体实现可以参考以下代码: ```java progressBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser) { // 用户拖动进度条时,改变播放进度 mediaPlayer.seekTo(progress); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { // 用户开始拖动进度条时,停止更新进度条进度 mHandler.removeCallbacks(mRunnable); } @Override public void onStopTrackingTouch(SeekBar seekBar) { // 用户停止拖动进度条时,重新开始更新进度条进度 mHandler.postDelayed(mRunnable, 1000); } }); ``` 通过以上步骤,就可以实现 Android 音乐播放器进度条对映 MP3 播放进度的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安卓兼职framework应用工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值