android 音乐播放工具类MediaPlayer
来源:互联网 发布:uc手机淘宝 编辑:程序博客网 时间:2024/04/28 05:10
上代码
public class Player implements OnBufferingUpdateListener, OnCompletionListener, OnPreparedListener { public MediaPlayer mediaPlayer; // 媒体播放器 private SeekBar seekBar; // 拖动条 private Timer mTimer = new Timer(); // 计时器 // 初始化播放器 public Player(SeekBar seekBar) { super(); this.seekBar = seekBar; try { mediaPlayer = new MediaPlayer(); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);// 设置媒体流类型 mediaPlayer.setOnBufferingUpdateListener(this); mediaPlayer.setOnPreparedListener(this); } catch (Exception e) { e.printStackTrace(); } // 每一秒触发一次 mTimer.schedule(timerTask, 0, 1000); } // 计时器 TimerTask timerTask = new TimerTask() { @Override public void run() { if (mediaPlayer == null) return; if (mediaPlayer.isPlaying() && seekBar.isPressed() == false) { handler.sendEmptyMessage(0); // 发送消息 } } }; Handler handler = new Handler() { public void handleMessage(android.os.Message msg) { int position = mediaPlayer.getCurrentPosition(); int duration = mediaPlayer.getDuration(); if (duration > 0) { // 计算进度(获取进度条最大刻度*当前音乐播放位置 / 当前音乐时长) long pos = seekBar.getMax() * position / duration; seekBar.setProgress((int) pos); } }; }; public void play() { mediaPlayer.start(); } /** * * @param url * url地址 */ public void playUrl(String url) { try { mediaPlayer.reset(); mediaPlayer.setDataSource(url); // 设置数据源 mediaPlayer.prepare(); // prepare自动播放 } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } // 暂停 public void pause() { mediaPlayer.pause(); } // 停止 public void stop() { if (mediaPlayer != null) { mediaPlayer.stop(); mediaPlayer.release(); mediaPlayer = null; } } @Override public void onPrepared(MediaPlayer mp) { mp.start(); Log.e("mediaPlayer", "onPrepared"); } @Override public void onCompletion(MediaPlayer mp) { Log.e("mediaPlayer", "onCompletion"); } /** * 缓冲更新 */ @Override public void onBufferingUpdate(MediaPlayer mp, int percent) { seekBar.setSecondaryProgress(percent); int currentProgress = seekBar.getMax() * mediaPlayer.getCurrentPosition() / mediaPlayer.getDuration(); Log.e(currentProgress + "% play", percent + " buffer"); }}
0 0
- android 音乐播放工具类MediaPlayer
- MediaPlayer+SurfaceHolder播放工具类
- Android媒体播放工具类
- android 利用 MediaPlayer 类播放音乐
- android MediaPlayer 音乐播放
- android-MediaPlayer音乐播放
- android mediaPlayer 播放音乐
- Android音乐播放-MediaPlayer
- Android MediaPlayer 音乐播放
- Android MediaPlayer实现音乐播放
- Android录音播放工具类,仿微信语音聊天。
- android 背景音乐 及音效播放工具类
- android的MediaPlayer类的使用(音乐播放器)
- Android 音乐播放器Service+MediaPlayer
- android如何长时间音乐播放实现MediaPlayer
- android如何长时间音乐播放实现MediaPlayer
- Android音乐播放器 -- MediaPlayer Service实现
- android MediaPlayer实现简单的音乐播放
- 【教程】将自己的APP部署到阿里云
- 课程笔记
- H
- iOS 隐藏navigationBar下面那条线
- Unity3D中的Coroutine详解
- android 音乐播放工具类MediaPlayer
- MFC 添加窗口背景
- TextView部分文字变色、可点击。(微博话题 变色、点击)
- 笔记4(判断语句、循环语句、list、dict)
- Spring动态数据源创建以及切换方案
- 硬件加速引起的问题
- SQL的锁
- 商品详情页系统的Servlet3异步化实践
- erlang md5 生成