音乐播放器完善
来源:互联网 发布:java方法重载作用 编辑:程序博客网 时间:2024/05/22 21:46
1:在onCreate()中创建mediaManage对象,在MyBinder中重写callPlay()等方法
@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();player = new MediaPlayer();}
public void callPlay() {// TODO Auto-generated method stubtry {System.out.println("play");player.reset();//在再次播放的时候回到原点player.setDataSource(Environment.getExternalStorageDirectory().getPath() + "/" + "wosiwosheng.mp3");player.prepare();player.start();//进度条updateSeekBar();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} }2:进度条逻辑
进度条需要在播放的时候也就是callPlay()方法执行时实时改变,需要实时的数据,而数据的传递可以用 handler实现.
在Mybinder中创建方法,在接口中添加方法,使用Timer类实现实时更新,在task中接收发送数据,任务完成后关闭任务.
public void updateSeekBar() {final int duration = player.getDuration();final Timer timer = new Timer();final TimerTask task = new TimerTask() {@Overridepublic void run() {// TODO Auto-generated method stubint currentPosition = player.getCurrentPosition();Message msg = Message.obtain();Bundle data = new Bundle();data.putInt("duration", duration);data.putInt("currentPosition", currentPosition);msg.setData(data);MainActivity.handler.sendMessage(msg);}};timer.schedule(task , 100, 1000);player.setOnCompletionListener(new OnCompletionListener() {@Overridepublic void onCompletion(MediaPlayer mp) {// TODO Auto-generated method stubtimer.cancel();task.cancel();}});}
在主线程中更新进度条
public static Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {// TODO Auto-generated method stubsuper.handleMessage(msg);Bundle data = msg.getData();int duration = data.getInt("duration");int currentPosition = data.getInt("currentPosition");sb.setMax(duration);sb.setProgress(currentPosition);}};3:拖动进度条
设置事件
sb = (SeekBar) findViewById(R.id.sb);sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stubiservice.callProgress(seekBar.getProgress());}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stub}@Overridepublic void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {// TODO Auto-generated method stub}});
@Overridepublic void callProgress(int progress) {// TODO Auto-generated method stubplayer.seekTo(progress);}
阅读全文
0 0
- 音乐播放器完善
- 仿酷狗音乐播放器开发日志四——标题栏和状态栏的完善
- 仿酷狗音乐播放器开发日志十三——左侧功能块的完善
- android音乐播放器播放音乐卡
- Android 音乐播放 类似音乐播放器
- flash音乐播放器
- 常见音乐播放器
- WEB音乐播放器
- Google 音乐播放器
- 单片机音乐播放器
- 简易音乐播放器
- 网页音乐播放器
- 音乐定时播放器
- android 音乐播放器
- 音乐播放器代码
- 音乐播放器01
- 个人音乐播放器
- YOYOPlayer音乐播放器
- python dota2数据 1 API
- 码云的入门教程
- hive建hbase外部表,内部表的问题
- Java算法实现之二分查找
- object-c学习:初识object-c
- 音乐播放器完善
- 对Hadoop生态圈的一个理解
- 认知中国:描绘中国人工智能发展蓝图(附下载)
- 研究发现超40%的消费者不了解人工智能
- 在java中如何跳出当前的多重嵌套循环?
- PHP微信支付开发之扫描支付(模式二)后如何回调
- 解决Yarn启动过程中InvalidAuxServiceException问题
- Vanson Bourne:人工智能吸引80%企业投资 但面临重大挑战
- dubbo+zookeeper开发实例