Android 简易的音乐播放器

2/13/2017来源:iOS开发人气:394

Android MediaPlayer实现简易的音乐播放器

MediaPlayer 这个类是音乐播放器的核心,借助这个类,实现了简易的音乐播放

主要用到的方法 mediaPlayer.start();(播放) mediaPlayer.pause();(暂停) mediaPlayer.stop();(停止)

音乐它可以来源于 1、内存, 2、存储卡, 3、网络

1、来源于内存的

需要在 res 目录下面建一个 raw 文件夹,用来存放需要播放的音乐

1、使用 MediaPlayer.create(this, R.raw.summer_love); 创建Mediaplayer对象 2、给Mediaplayer设置类型mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 中间设置下图标,进度条

3、最后 mediaPlayer.start();

/** * 播放or暂停 * @param view */ public void isPlayOrPause(View view){ final ImageButton ib_main_play = (ImageButton)view; //判断MediaPlay的状态 if(mediaPlayer == null){ //1、为空,也就是第一次 //1、内存中的音频文件 // mediaPlayer = MediaPlayer.create(this, R.raw.summer_love); //设置类型 mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); //播放 mediaPlayer.start(); //改变图标 ib_main_play.setImageResource(android.R.drawable.ic_media_pause); //获取音乐总时长 int duration = mediaPlayer.getDuration(); //设置seekBar总长 sb_main_music.setMax(duration); //使进度条跟随随音乐长度 new MyThread().start(); } else if(mediaPlayer.isPlaying()){ //2、正在播放? mediaPlayer.pause(); ib_main_play.setImageResource(android.R.drawable.ic_media_play); } else { //3、暂停 mediaPlayer.start(); ib_main_play.setImageResource(android.R.drawable.ic_media_pause); } }

2、内存卡、网络

方便测试,我把音乐放在了特定的文件夹里

这两种的 MediaPlayer 创建方式和在内存中的音乐数据不同 1、通过 new 一个 MediaPlayer 对象 , 2、设置类型 3、设置路径(路径需要符合 “file://“(本地文件)/”http://”(网络)协议 ) 4、准备((存储卡)mediaPlayer.PRepare();/(网络)mediaPlayer.prepareAsync();) 5、监听是否准备完成 6、启动(播放)

//实例化MediaPlayer mediaPlayer = new MediaPlayer(); //设置类型 mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); try { //设置音频 //内存卡 // mediaPlayer.setDataSource(this,Uri.parse("file://mnt/sdcard/down.mp3")); //需要准备(内存卡) // mediaPlayer.prepare(); //网络 mediaPlayer.setDataSource(this,Uri.parse("http://192.168.0.101:8080/yasu.mp3")); //准备(网络) mediaPlayer.prepareAsync(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //准备完成监听 mediaPlayer.setOnPreparedListener(new OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { // TODO Auto-generated method stub //播放 mediaPlayer.start(); //改变图标 ib_main_play.setImageResource(android.R.drawable.ic_media_pause); //获取音乐总时长 int duration = mediaPlayer.getDuration(); //设置seekBar总长 sb_main_music.setMax(duration); //使进度条随音乐长度 new MyThread().start(); } });

最后别忘了添加权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.INTERNET"/>