有没有一个方法用类似Observer/Listener的方法来监听MediaPlayer播放位置的变化?

面向对象思考
博客专家认证
2011-08-23 07:35:55
MediaPlayer有一个getPosition方法可以取得播放的现在位置,但是如果用这个方法的话,就需要调用者一次一次去调用。有没有一个方法用类似Observer/Listener的方法来监听MediaPlayer播放位置的变化?
请各位高人指导。
...全文
365 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
深耕安卓 2011-08-24
  • 打赏
  • 举报
回复
基本上没戏
BadPattern 2011-08-24
  • 打赏
  • 举报
回复
VideoView中也有进度条,一秒钟走一段,它的实现:

private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
int pos;
switch (msg.what) {
case FADE_OUT:
hide();
break;
case SHOW_PROGRESS:
pos = setProgress();
if (!mDragging && mShowing && mPlayer.isPlaying()) {
msg = obtainMessage(SHOW_PROGRESS);
sendMessageDelayed(msg, 1000 - (pos % 1000));
}
break;
}
}
};

也是相当于定时器来实现的。
BadPattern 2011-08-24
  • 打赏
  • 举报
回复
你的意思是不想客户端去轮循,而改用监听的方式。
可惜MediaPlayer并没有提供这样的接口。
面向对象思考 2011-08-24
  • 打赏
  • 举报
回复
谢谢各位

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧