分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
Android实现在线播放音乐
2014年3月10日
hello,小伙伴们,3月份珊珊来迟的第一篇博客,最近小巫在找工作,加上又生病了,就没有太多精力去写博客了。今天拖着病发表一篇之前已经实现的在线播放音乐效果,在线播放音乐并不难,也就是传入的Url是一个网络地址。这里我要实现一个可以进行网络缓冲的在线音乐播放。
效果实现:
本篇博客是在多线程下载那篇博客增加在线播放音乐实现,下面是提供项目下载地址:
下面介绍具体实现过程:
定义一个具有缓冲效果的播放器:Player
我们看到的缓冲效果,是通过设置拖动条SeekBar的二级进度实现的,这就要设置MediaPlayer的缓冲更新的监听了。
具体代码实现:
package com.wwj.download.util;import java.io.IOException;import java.util.Timer;import java.util.TimerTask;import android.media.AudioManager;import android.media.MediaPlayer;import android.media.MediaPlayer.OnBufferingUpdateListener;import android.media.MediaPlayer.OnCompletionListener;import android.media.MediaPlayer.OnPreparedListener;import android.os.Handler;import android.util.Log;import android.widget.SeekBar;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() {