Android音乐播放-MediaPlayer
2014-11-11 09:28
302 查看
当你坐公交无聊的时候,当你淹没在地铁中人潮中的时候,你是否想内心保持一份的安静呢,那么请带上耳机,打开你的音乐播放器,听一首老歌带你进入宁静的世界,音乐播放这个功能在智能手机出现之前,诺基亚时代,甚至追溯到最开始的大哥大的时候都是属于音频的范畴。Android中播放音频不可避免的使用的一个类是Mediaplayer,视频调用也是这个类。扯远了,开始正题吧:
![](http://images.cnitblog.com/blog/485855/201411/110925157884511.png)
布局如下:
![](http://images.cnitblog.com/blog/485855/201411/110926163033698.png)
播放按钮事件:
播放效果:
![](http://images.cnitblog.com/blog/485855/201411/110927432251420.png)
暂停和继续事件:
暂停和继续效果:
![](http://images.cnitblog.com/blog/485855/201411/110928120223585.png)
停止事件:
重播事件:
稍微简单的写了写,如果有不当之处,请大家多多指教~
基础维护
首先这个时候来看看要实现的效果吧:![](http://images.cnitblog.com/blog/485855/201411/110925157884511.png)
布局如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.googlemedia.MainActivity" > <EditText android:id="@+id/edit_musicPath" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入你喜欢歌曲的路径" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/btn_Play" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="playEvent" android:text="播放" /> <Button android:id="@+id/btn_Pause" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="pauseEvent" android:text="暂停" /> <Button android:id="@+id/btn_Stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="stopEvent" android:text="停止" /> <Button android:id="@+id/btn_Replay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="replayEvent" android:text="重播" /> </LinearLayout> </LinearLayout>
Demo完成
音频文件:![](http://images.cnitblog.com/blog/485855/201411/110926163033698.png)
播放按钮事件:
public void playEvent(View view){ editText=(EditText) findViewById(R.id.edit_musicPath); String pathString=editText.getText().toString().trim(); File file=new File(pathString); if (file.exists()) { try { mediaPlayer = new MediaPlayer(); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setDataSource(pathString); mediaPlayer.prepare(); mediaPlayer.start(); //多次点击播放按钮容易混音 btn_PlayButton.setEnabled(false); //播放完之后需要回调的时候设置显示 mediaPlayer.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { // TODO Auto-generated method stub btn_PlayButton.setEnabled(true); } }); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else { Toast.makeText(this, "Sorry,你输入的路径有问题,请仔细检查",Toast.LENGTH_SHORT).show(); } }
播放效果:
![](http://images.cnitblog.com/blog/485855/201411/110927432251420.png)
暂停和继续事件:
public void pauseEvent(View view){ if ( btn_PauseButton.getText().equals("继续")) { mediaPlayer.start(); btn_PauseButton.setText("暂停"); return; } if (mediaPlayer!=null&&mediaPlayer.isPlaying()) { mediaPlayer.pause(); btn_PauseButton.setText("继续"); } }
暂停和继续效果:
![](http://images.cnitblog.com/blog/485855/201411/110928120223585.png)
停止事件:
public void stopEvent(View view){ if (mediaPlayer!=null&&mediaPlayer.isPlaying()) { btn_PlayButton.setEnabled(true); mediaPlayer.stop(); //释放mediaplayer否则的话会占用内存 mediaPlayer.release(); mediaPlayer=null; } btn_PauseButton.setText("暂停"); btn_PlayButton.setEnabled(true); }
重播事件:
public void replayEvent(View view){ if (mediaPlayer!=null&&mediaPlayer.isPlaying()) { mediaPlayer.seekTo(0); }else { playEvent(view); } //重播的时候应该设置播放的状态 btn_PlayButton.setEnabled(true); }
稍微简单的写了写,如果有不当之处,请大家多多指教~
相关文章推荐
- Android音乐播放——MediaPlayer, unable to create media player
- 【Android开发学习04】长时间的音乐播放实现MediaPlayer
- 简析Android mediaPlayer 播放在线音乐网络异常状态的处理
- android开发---9.MediaPlayer实现音乐播放的demo
- Android之MediaPlayer播放音乐并实现进度条实例
- 【Android Dev Guide - 04】 - Media - 学习使用MediaPlayer播放音乐
- Android音乐播放-MediaPlayer
- Android实例-MediaPlayer播放音乐和视频(XE8+小米2)
- Android中MediaPlayer播放音乐时自动中断的解决办法
- android 音乐播放工具类MediaPlayer
- Android--MediaPlayer(实现列表选歌,上一首,下一首,清空播放列表,搜索本地音乐文件)
- android 利用 MediaPlayer 类播放音乐
- android-MediaPlayer音乐播放
- Android多媒体编程——MediaPlayer播放音乐
- 【Android Dev Guide - 04】 - Media - 学习使用MediaPlayer播放音乐
- 【Android Dev Guide - 04】 - Media - 学习使用MediaPlayer播放音乐
- Android MediaPlayer 音乐播放
- Android MediaPlayer播放音乐有必要使用Service来调用吗?
- 【Android Dev Guide - 04】 - Media - 学习使用MediaPlayer播放音乐
- android:使用mediaplayer播放res/raw文件夹中的音乐