`
gechaoqing
  • 浏览: 1597 次
  • 性别: 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:定时器,时时...

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

    简单的实现了音乐播放器进度条功能,内置两首歌,可通过点击下一首进行播放。读者可以自行加入一些其他的代码进行调整。

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

    使用Android实现的带进度条的播放器,音乐播放在Service中实现播放、暂停、继续和停止,但是停止和进度条的关联还有些问题,有待改进。

    安卓音频播放器带进度条

    音频播放实现暂停开始等 }); 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的简单使用。音量,音乐播放进度,视频播放进度等

    音乐播放器进度条library

    开源MaskPrgressView 使用于音乐播放器实现.

    Android 音乐播放器

    为了大家更好的学习操作,以及提供给更入门Android做为一个领路的文章,我简单的制作了一个音乐播放器,实现简单的拖动进度条实现快进退功能以及其他的上一曲、下一曲、开始/暂停、 停止简单功能。 ----------------...

    音乐播放器--简单实现播放、暂停、随机播放、音乐进度条(第一版)

    音乐播放器--简单实现播放、暂停、随机播放、音乐进度条。有侧滑菜单的实现,自定义Dialog的实现

    Android音乐播放器的开发高清完整实例.zip

    主要介绍了Android编程开发音乐播放器,结合实例形式分析了Android音乐播放器开发所涉及的SeekBar,ListView,广播接收者(以代码的形式注册Receiver),系统服务,MediaPlayer等技巧,需要的朋友可以参考下 本资源是引导...

    Android Studio 简易音乐播放器

    Android Studio开发的简易音乐播放器app,读取本地SD卡指定路径的mp3文件进行播放,实现以下功能: 1. 播放、暂停,停止,退出功能; 2. 后台播放功能;(service) 3. 进度条显示播放进度、拖动进度条改变进度功能...

    Android实现音乐播放器V1.0

    Android音乐播放器的简单实现,歌曲列表展示,单击列表播放,上一首,下一首,暂停/播放,进度条显示,进度条拖拽播放,播放完自动下一首,原博客地址:https://blog.csdn.net/u010356768/article/details/79066188

    Android课程设计音乐播放器(启动动画+登录注册+轮播图+音乐功能(包含转盘同步和进度条)以及我的个人信息等等)

    基于Androidstudio平台开发的Android音乐播放器实现了如下的功能: 1:启动动画(运行程序有短暂视频播放,3秒钟后自动进入登录界面) 2:登录注册(账号密码采用了MD5加密) 3:轮播图(无限循环,每张循环的图片...

    android音乐播放器开发

    实现了扫描本地音乐以及音乐的播放、暂停、上一首下一首和自动循环播放,用户从点击爱心标记可以将当前歌曲加入喜欢歌曲列表,歌曲进度条可拖拽。当用户点击歌曲时开启服务在通知栏显示当前播放的歌曲。在退出app的...

    android程序-本地音乐播放器

    大部分基本的播放器功能都实现了,包括获取SD卡音乐文件、歌曲选择、可拖动的进度条、获取歌词(网上歌词有的找不到)、播放模式切换、调节声音大小以及后台播放功能。主要涉及媒体播放器(MediaPlayer和MediaStore...

    Android音乐播放器

    用mediaplayer实现的简单音乐播放器。运行的时候经常闪退。在asset目录下的json文件中存有很多音乐URL,运行app的时候用AsyncTask从里面读取然后播放。设置进度条的时候用到了handler异步通信。界面的跳转用嵌套...

    android 音乐播放器 源码

    android音乐播放器 暂停 播放 停止 进度条控制音乐播放位置的,各个功能都已实现,代码简单易学 ,适合学习者参考。

    android本地音乐播放器

    android本地音乐播放器,实现了进度条,歌曲时间显示,歌曲进度显示等基本功能

    Android音乐播放器的开发实例

    本资源是引导大家做一个音乐播放器的源码打包文件,在做这个Android开发实例的过程中,能够帮助大家进一步熟悉和掌握学过的ListView和其他一些组件。为了有更好的学习效果,其中很多功能我们手动实现,例如拖动音乐...

Global site tag (gtag.js) - Google Analytics