首先在Activity中设置相应参数,如下:
private ProgressBar pbar;
private static final int REFRESH_TIME = 1;
private long mPosOverride = -1;
// Handler used to update the current time
private TimeHandler mTimeHandler;
private boolean mIsPaused = false;
实现刷新进度的方法:
private long refreshCurrentTime() {
if (mService == null) {
return 500;
}
try {
final long pos = mPosOverride < 0 ? MusicUtils.position()
: mPosOverride;
if (pos >= 0 && MusicUtils.duration() > 0) {
// refreshCurrentTimeText(pos);
final int progress = (int) (1000 * pos / MusicUtils.duration());
pbar.setProgress(progress);
} else {
pbar.setProgress(1000);
}
// calculate the number of milliseconds until the next full second,
// so
// the counter can be updated at just the right time
final long remaining = 1000 - pos % 1000;
// approximate how often we would need to refresh the slider to
// move it smoothly
int width = pbar.getWidth();
if (width == 0) {
width = 320;
}
final long smoothrefreshtime = MusicUtils.duration() / width;
if (smoothrefreshtime > remaining) {
return remaining;
}
if (smoothrefreshtime < 20) {
return 20;
}
return smoothrefreshtime;
} catch (final Exception ignored) {
}
return 500;
}
/**
* @param delay
* When to update
*/
private void queueNextRefresh(final long delay) {
if (!mIsPaused) {
final Message message = mTimeHandler.obtainMessage(REFRESH_TIME);
mTimeHandler.removeMessages(REFRESH_TIME);
mTimeHandler.sendMessageDelayed(message, delay);
}
}
实现Handler:
/**
* Used to update the current time string
*/
private static final class TimeHandler extends Handler {
private final WeakReference<MusicWaveActivity> mAudioPlayer;
/**
* Constructor of <code>TimeHandler</code>
*/
public TimeHandler(final MusicWaveActivity player) {
mAudioPlayer = new WeakReference<MusicWaveActivity>(player);
}
@Override
public void handleMessage(final Message msg) {
switch (msg.what) {
case REFRESH_TIME:
final long next = mAudioPlayer.get().refreshCurrentTime();
mAudioPlayer.get().queueNextRefresh(next);
break;
default:
break;
}
}
};
最后在Activity 中的操作;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.home);
mTimeHandler = new TimeHandler(this);
}
@Override
protected void onDestroy() {
mIsPaused = false;
mTimeHandler.removeMessages(REFRESH_TIME);
}
@Override
protected void onResume() {
queueNextRefresh(1);
}
分享到:
相关推荐
本文实例为大家分享了android实现音乐播放器进度条效果的具体代码,供大家参考,具体内容如下 效果图 依赖3个对象 MediaPlayer:实现音乐播放,暂停,缓冲。 SeekBar:滑动的进度条。 java.util.Timer:定时器,时时...
这个"简单实现音乐播放器进度条功能"的项目,旨在教你如何在编程环境中创建一个基本的音乐播放器,包括播放、暂停和切换歌曲的能力,并通过进度条展示当前播放进度。我们将探讨以下关键知识点: 1. **媒体播放API**...
本项目"Android 带进度条的使用Service实现的音乐播放器"聚焦于如何在后台Service中使用MediaPlayer类来实现音乐播放,并结合UI界面展示播放进度。以下是这个项目涉及到的关键知识点: 1. **Android Service**: ...
总之,构建一个具有音量控制和播放进度功能的Android音乐播放器,涉及到`SeekBar`组件的运用,`MediaPlayer`的控制,以及对Android音频系统和服务的理解。通过巧妙地结合这些元素,你可以创建出用户友好的、功能完善...
首先,Android音乐播放器的核心是媒体播放器(MediaPlayer)类,它是Android SDK中的一个重要组件,用于播放音频和视频文件。在`Music`这个项目中,我们可以看到如何使用MediaPlayer类来播放设备上的音乐文件。...
"音乐播放器进度条library"是一个专为Android应用程序设计的开源组件,它提供了自定义的进度条视图,特别适用于音乐播放器应用,以优雅的方式展示歌曲的播放进度。这个库被称为MaskPrgressView,开发者可以利用它来...
以下将详细解析“android音乐播放器demo”所涵盖的知识点。 首先,Android音乐播放器的核心是媒体播放服务(MediaPlayer)。这是一个系统级的服务,用于处理音频和视频文件的播放。在Android中,MediaPlayer类提供...
【Android音乐播放器开发概述】 在移动应用领域,Android音乐播放器是常见且实用的应用类型。这个项目"简单的Android音乐播放器"旨在提供一个基础框架,让用户能够进行音乐的播放、暂停、上一曲和下一曲操作,并且...
本项目是一个基于Android Studio的音乐播放器APP源码,对于学习Android应用开发,尤其是多媒体功能实现的开发者来说,这是一个宝贵的资源。 1. **Android Studio集成开发环境**: Android Studio是Google推出的一...
在开发音乐播放器时,进度条常常被用来作为音量...综上所述,音乐播放器中的进度条控制音量大小是通过结合用户界面交互、音频处理和编程技术来实现的。理解和掌握这些知识点对于开发功能丰富的音乐播放应用至关重要。
音频播放实现暂停开始等 }); btnStop.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub musicStop(); } }...
Android实现简单音乐播放器(MediaPlayer),供大家参考,具体内容如下 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能有: 播放、暂停功能; 进度条显示...
博文介绍:http://blog.csdn.net/qq_21376985/article/details/52494574 Android开发实现进度条效果,SeekBar的简单使用。音量,音乐播放进度,视频播放进度等
通过以上介绍,我们可以看到构建一个简易的Android音乐播放器涉及到的技术点主要包括:使用MediaPlayer类处理音频文件、设计用户界面、实现文件选择功能、管理播放列表以及处理错误等。对于初学者来说,从这样一个...
这款"android音乐播放器测试歌曲"的应用显然专注于测试音乐播放功能,我们可以通过分析它的内容来深入理解相关技术。 首先,我们要讨论的是Android音频框架。Android系统提供了一个强大的音频框架,包括Media ...
下面,我们将围绕"android音乐播放器源码"这一主题,深入探讨其中的关键知识点。 首先,音乐播放器的核心是音频处理。在Android中,我们可以使用`MediaPlayer`类来播放音频文件。`MediaPlayer`提供了丰富的API,...
这个“android音乐播放器源代码”提供了一个基础的实现,它利用了Service来实现在后台持续播放音乐,并且允许用户自动或手动切换歌曲。此外,它还支持对SD卡上的音乐资源进行扫描,方便用户管理和播放存储在外部存储...
SeekBar是Android SDK提供的一种进度条控件,常用于音乐播放器、视频应用或者任何需要用户调整进度的场景。它继承自ProgressBar,增加了可拖动的特性,让用户能够直观地看到当前的播放进度,并进行交互。 1. ...
这个“Android音乐播放器源码”提供了一个完整的实现,从用户界面设计到音频处理,涵盖了多个关键知识点。 1. **媒体播放库(MediaPlayer)**:Android系统的MediaPlayer类是音频和视频播放的核心组件。源码中会...