`
gechaoqing
  • 浏览: 1649 次
  • 性别: Icon_minigender_1
  • 来自: 山东
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android音乐播放器进度条实现

阅读更多
首先在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实现音乐播放器进度条效果

    本文实例为大家分享了android实现音乐播放器进度条效果的具体代码,供大家参考,具体内容如下 效果图 依赖3个对象 MediaPlayer:实现音乐播放,暂停,缓冲。 SeekBar:滑动的进度条。 java.util.Timer:定时器,时时...

    简单实现音乐播放器进度条功能

    这个"简单实现音乐播放器进度条功能"的项目,旨在教你如何在编程环境中创建一个基本的音乐播放器,包括播放、暂停和切换歌曲的能力,并通过进度条展示当前播放进度。我们将探讨以下关键知识点: 1. **媒体播放API**...

    Android 带进度条的使用Service实现的音乐播放器

    本项目"Android 带进度条的使用Service实现的音乐播放器"聚焦于如何在后台Service中使用MediaPlayer类来实现音乐播放,并结合UI界面展示播放进度。以下是这个项目涉及到的关键知识点: 1. **Android Service**: ...

    android音乐播放器中的进度条(音量控制+进度)

    总之,构建一个具有音量控制和播放进度功能的Android音乐播放器,涉及到`SeekBar`组件的运用,`MediaPlayer`的控制,以及对Android音频系统和服务的理解。通过巧妙地结合这些元素,你可以创建出用户友好的、功能完善...

    Android 音乐播放器简单实现源码实例下载

    首先,Android音乐播放器的核心是媒体播放器(MediaPlayer)类,它是Android SDK中的一个重要组件,用于播放音频和视频文件。在`Music`这个项目中,我们可以看到如何使用MediaPlayer类来播放设备上的音乐文件。...

    音乐播放器进度条library

    "音乐播放器进度条library"是一个专为Android应用程序设计的开源组件,它提供了自定义的进度条视图,特别适用于音乐播放器应用,以优雅的方式展示歌曲的播放进度。这个库被称为MaskPrgressView,开发者可以利用它来...

    android音乐播放器demo

    以下将详细解析“android音乐播放器demo”所涵盖的知识点。 首先,Android音乐播放器的核心是媒体播放服务(MediaPlayer)。这是一个系统级的服务,用于处理音频和视频文件的播放。在Android中,MediaPlayer类提供...

    简单的Android音乐播放器

    【Android音乐播放器开发概述】 在移动应用领域,Android音乐播放器是常见且实用的应用类型。这个项目"简单的Android音乐播放器"旨在提供一个基础框架,让用户能够进行音乐的播放、暂停、上一曲和下一曲操作,并且...

    基于Android Studio开发的音乐播放器APP源码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)

    Android实现简单音乐播放器(MediaPlayer),供大家参考,具体内容如下 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能有: 播放、暂停功能; 进度条显示...

    Android开发实现进度条效果,SeekBar的简单使用。音量,音乐播放进度,视频播放进度等

    博文介绍:http://blog.csdn.net/qq_21376985/article/details/52494574 Android开发实现进度条效果,SeekBar的简单使用。音量,音乐播放进度,视频播放进度等

    android 简易音乐播放器的实现

    通过以上介绍,我们可以看到构建一个简易的Android音乐播放器涉及到的技术点主要包括:使用MediaPlayer类处理音频文件、设计用户界面、实现文件选择功能、管理播放列表以及处理错误等。对于初学者来说,从这样一个...

    android音乐播放器测试歌曲

    这款"android音乐播放器测试歌曲"的应用显然专注于测试音乐播放功能,我们可以通过分析它的内容来深入理解相关技术。 首先,我们要讨论的是Android音频框架。Android系统提供了一个强大的音频框架,包括Media ...

    android音乐播放器源码

    下面,我们将围绕"android音乐播放器源码"这一主题,深入探讨其中的关键知识点。 首先,音乐播放器的核心是音频处理。在Android中,我们可以使用`MediaPlayer`类来播放音频文件。`MediaPlayer`提供了丰富的API,...

    android音乐播放器源代码

    这个“android音乐播放器源代码”提供了一个基础的实现,它利用了Service来实现在后台持续播放音乐,并且允许用户自动或手动切换歌曲。此外,它还支持对SD卡上的音乐资源进行扫描,方便用户管理和播放存储在外部存储...

    播放器进度条

    SeekBar是Android SDK提供的一种进度条控件,常用于音乐播放器、视频应用或者任何需要用户调整进度的场景。它继承自ProgressBar,增加了可拖动的特性,让用户能够直观地看到当前的播放进度,并进行交互。 1. ...

    android 音乐播放器源码下载

    这个“Android音乐播放器源码”提供了一个完整的实现,从用户界面设计到音频处理,涵盖了多个关键知识点。 1. **媒体播放库(MediaPlayer)**:Android系统的MediaPlayer类是音频和视频播放的核心组件。源码中会...

Global site tag (gtag.js) - Google Analytics