在写一个音乐播放器,在一个Service类中利用MediaPlayer进行音乐的播放,一个Activity中控制界面,现在想在播放时在Activity上的一个SeekBar能够显示音乐的播放进度,现在的问题是,音乐播放是在Service中,所以获得歌曲播放进度是在Service中获得,要把进度传递给Activity的SeekBar显示进度,而进度是要不断更新的,难道Service中歌曲进度更新一次我就要startActivity吗?行不通吧?用BroadcastReceiver能OK么?希望大家帮帮我!
解决方案 »
- android ndk
- android播放器中,解析rm格式
- 小妹请教如何在下载的同时往Notification添加一个进度条。
- android 重力感应,窗口翻转
- android优化大师界面问题(有图),来讨论一下杂个实现的?
- 往sim卡上写短信
- android连不上谷歌地图了?
- Run 模式下还会出现Waiting For Debugger,怎么解决?
- 大神,我又来了!!!httpclient的post方法无法获取响应消息的location字段,怎么破!!
- 求大神帮忙解决一个ndk开发的问题,在线等
- 为什么setResult(RESULT_OK,data)回传不了值?
- 在弹出menu时,如何让menu以外的控件(popupwindow) 获取焦点响应点击事件
LZ可以在Service里面开一个线程 , 专门负责SEEKBAR的管理 ,每隔一秒sendBroadcast一次 , 可以利用Intent来抓你写的那个BroadcastReceiver , 并且抓的时候你还可以把歌曲进度的一些信息写到Intent里面 。
那个广播直接写到你布局SEEKBAR的那个Activity里面就行了。
/packages/apps/Music就是了
MusicService.mMediaPlayer.getCurrentPosition();
和
MusicService.mMediaPlayer.getDuration();
取得当前播放的位置,再设置SeekBar的进度就可以了,新开一个线程,设置一个1s的延迟,选中更新进度就可以了。
MusicService.mMediaPlayer.getCurrentPosition();
和
MusicService.mMediaPlayer.getDuration();
取得当前播放的位置,再设置SeekBar的进度就可以了,新开一个线程,设置一个1s的延迟,循环更新进度就可以了。