Android MediaPlayer结合Seekbar实现音频文件播放
MediaPlayer和Seekbar<SeekBarandroid:id="@+id/voice_progress"android:layout_width="180dp"android:layout_height="wrap_content"android:background="@android:color/transparent"android:progressT
·
MediaPlayer和Seekbar
<SeekBar
android:id="@+id/voice_progress"
android:layout_width="180dp"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:progressTint="#22C580"
android:thumbTint="#22C580"
android:maxHeight="2dip"
android:minHeight="2dip"
android:paddingLeft="0dip"
android:paddingRight="0dip"/>
thumbTint //滑块颜色
progressTint //进度条颜色
//初始化MediaPlayer
mMediaPlayer = new MediaPlayer();
//播放完成监听
mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
//设置播放文件源
mMediaPlayer.setDataSource(audioFile.getAbsolutePath());
mMediaPlayer.prepare();
mMediaPlayer.start();
//设置不循环播放
mMediaPlayer.setLooping(false);
//设置seekbar长度
mSeekBar.setMax(mMediaPlayer.getDuration());
//获取当前播放进度
int currentSecond = mMediaPlayer.getCurrentPosition();
//设置seekbar上进度
mSeekBar.setProgress(currentSecond);
//Seekbar手动滑动播放
实现SeekBar.OnSeekBarChangeListener接口,重写一下三个方法
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(fromUser){
mCurrentTime.setText(NoteUtils.secondToTime(progress/1000)+"/");
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
voiceHandler.removeMessages(UPDATE_SEEKBAR_PROGRESS);
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
//指定开始播放位置
mMediaPlayer.seekTo(seekBar.getProgress());
if (mMediaPlayer.isPlaying()) {
voiceHandler.removeMessages(UPDATE_SEEKBAR_PROGRESS);
voiceHandler.sendEmptyMessage(UPDATE_SEEKBAR_PROGRESS);
}
}
https://www.cnblogs.com/8023-itxinde/p/5212240.html
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)