Android媒体播放器seekbar
我有一个创建、播放和处理mediaplayer(仅音频)的服务,但我在主要活动中有一个seekbar,我想自然地显示音频文件的进度,并允许用户搜索不同的位置Android媒体播放器seekbar,android,android-service,android-mediaplayer,android-seekbar,Android,Android Service,Android Mediaplayer,Android Seekbar,我有一个创建、播放和处理mediaplayer(仅音频)的服务,但我在主要活动中有一个seekbar,我想自然地显示音频文件的进度,并允许用户搜索不同的位置 我花了很长时间才弄明白:将UI中的seekbar连接到服务中的mediaplayer的最佳或正确方法是什么?试着看看它是否对您有用。下面是我将如何做的: 绑定到播放音频的服务。服务器在onBind中返回的接口应该具有getCurrentPos()和getDuration()函数 在活动的onCreate绑定到服务中 在活动的onResume
我花了很长时间才弄明白:将UI中的seekbar连接到服务中的mediaplayer的最佳或正确方法是什么?试着看看它是否对您有用。下面是我将如何做的:
onBind
中返回的接口应该具有getCurrentPos()
和getDuration()
函数onCreate
绑定到服务中onResume
中,使用Handler
的postdayed
功能启动更新onPause
中,停止通过postDelayed
功能发布的所有回调postDelayed
运行boundService.getCurrentPos()
和boundService.getDuration()
并适当更新seekbar处理程序
定期更新阅读此问题:SeekBarSyncEvent.java
,将所需参数放入其中:
- 智力进步
- 整数持续时间
- 布尔fromUser
- 你需要什么都行
onPrepared()
方法中的SeekBarSyncEvent
类从总线发布事件,从而从活动中初始化seekbar
最后,在您的活动上创建@Subscribe
方法,以便它调用您的seekBarUpdate()
方法
这应该工作良好,很好,易于维护