Android媒体播放器的SeekBar无法通过歌曲文件进行快进。
创始人
2024-10-09 02:30:44
0

要实现Android媒体播放器的SeekBar通过歌曲文件进行快进,可以使用MediaPlayer类的seekTo()方法来实现。以下是一个示例代码:

import android.media.MediaPlayer;
import android.widget.SeekBar;

public class MainActivity extends AppCompatActivity {

    private MediaPlayer mediaPlayer;
    private SeekBar seekBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 初始化MediaPlayer和SeekBar
        mediaPlayer = MediaPlayer.create(this, R.raw.song);
        seekBar = findViewById(R.id.seekBar);

        // 设置SeekBar的最大值为音频文件的时长
        seekBar.setMax(mediaPlayer.getDuration());

        // 播放音频文件
        mediaPlayer.start();

        // 创建一个线程来更新SeekBar的进度
        new Thread(new Runnable() {
            @Override
            public void run() {
                while (mediaPlayer != null) {
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    seekBar.setProgress(mediaPlayer.getCurrentPosition());
                }
            }
        }).start();

        // 设置SeekBar的监听器,当用户拖动SeekBar时,调用MediaPlayer的seekTo()方法进行快进
        seekBar.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) {}

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {}
        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 释放MediaPlayer资源
        if (mediaPlayer != null) {
            mediaPlayer.release();
            mediaPlayer = null;
        }
    }
}

在这个示例代码中,我们首先初始化了MediaPlayer和SeekBar,然后设置SeekBar的最大值为音频文件的时长。接着,我们使用一个线程来实时更新SeekBar的进度,即当前播放位置。最后,我们设置SeekBar的监听器,当用户拖动SeekBar时,调用MediaPlayer的seekTo()方法进行快进。

相关内容

热门资讯

玩家攻略推荐!wepoker私... 玩家攻略推荐!wepoker私人局俱乐部怎么进,佛手在线大菠萝为什么都输,存在挂教程(有挂技巧);1...
透视软件"We po... 透视软件"We poker辅助器下载"详细辅助插件教程(本然是真的有挂);最新版2024是一款经典耐...
1.9分钟了解!wepoker... 1.9分钟了解!wepoker代打辅助,hhpoker俱乐部是干嘛的,解说技巧(有挂神器);实战中需...
透视脚本"wepok... 透视脚本"wepoker透视脚本"详细辅助安装教程(起初有挂);致您一封信;亲爱wepoker透视脚...
传递经验!pokermaste... 传递经验!pokermaster辅助器,约局吧德州可以透视吗,AI教程(有挂透视);1.约局吧德州可...
透视计算"wepok... 透视计算"wepoker怎么发冤家牌"详细辅助插件教程(从来真的有挂)1、很好的工具软件,可以解锁游...
一分钟了解!wepoker有辅... 一分钟了解!wepoker有辅助吗,aa poker辅助,切实教程(有挂透视)1、很好的工具软件,可...
透视透视"wepok... 1、透视透视"wepoker辅助器安装包"详细辅助技巧教程(从来真的有挂)。2、wepoker辅助器...
一秒答解!wepoker轻量版... 自定义wepoker轻量版透视方法系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用...
透视神器"wepok... 透视神器"wepoker正确养号方法"详细辅助详细教程(果然有挂);大神普及一款德州ai内幕,确定了...