MediaPlayer--点击按钮,播放语音
2016-03-17 09:28
232 查看
项目中有个需求是,点击button按钮,加载网络语音并且播放,之前没用过MediaPlayer,但是需求很简单,也不是很难,在此记录一下,第一次用MediaPlayer.
1.首先在布局中放一个button按钮,id=btn_playVioce_o,可以给按钮加上文字,例如仿微信那种“ 7' ”显示语音的长度,布局很简单,这里就不放demo了
2.初始化MediaPlayer
private MediaPlayer mediaPlayer;
在activity的onCreate()方法中初始化
<span style="white-space:pre"> </span>mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);//设置媒体流类型
mediaPlayer.setOnPreparedListener(this);
使当前activity implements MediaPlayer.OnPreparedListener
重写方法:
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
注意在activity的onDestroy()方法中关闭mediaPlayer
@Override
protected void onDestroy() {
super.onDestroy();
if (mediaPlayer != null) {
mediaPlayer.stop();
mediaPlayer = null;
}
}
3.给btn_playVioce_o设置onclickListener,注意要另开线程,防止ui阻塞
case R.id.btn_playvoice_o:
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
return;
} else {
new Thread(new Runnable() {
@Override
public void run() {
//playUrl("http://hooshine.b0.upaiyun.com/201511/UXSLFWTF.aac");
playUrl(entity.getConditionSound());
}
}).start();
}
break;
其中playUrl()方法如下:
//播放语音
public void playUrl(String url) {
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(url);
mediaPlayer.prepare();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
ok,结束!
1.首先在布局中放一个button按钮,id=btn_playVioce_o,可以给按钮加上文字,例如仿微信那种“ 7' ”显示语音的长度,布局很简单,这里就不放demo了
2.初始化MediaPlayer
private MediaPlayer mediaPlayer;
在activity的onCreate()方法中初始化
<span style="white-space:pre"> </span>mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);//设置媒体流类型
mediaPlayer.setOnPreparedListener(this);
使当前activity implements MediaPlayer.OnPreparedListener
重写方法:
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
注意在activity的onDestroy()方法中关闭mediaPlayer
@Override
protected void onDestroy() {
super.onDestroy();
if (mediaPlayer != null) {
mediaPlayer.stop();
mediaPlayer = null;
}
}
3.给btn_playVioce_o设置onclickListener,注意要另开线程,防止ui阻塞
case R.id.btn_playvoice_o:
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
return;
} else {
new Thread(new Runnable() {
@Override
public void run() {
//playUrl("http://hooshine.b0.upaiyun.com/201511/UXSLFWTF.aac");
playUrl(entity.getConditionSound());
}
}).start();
}
break;
其中playUrl()方法如下:
//播放语音
public void playUrl(String url) {
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(url);
mediaPlayer.prepare();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
ok,结束!
相关文章推荐
- MediaPlayer 在线播放器代码
- 深入Android MediaPlayer的使用方法详解
- Android提高之MediaPlayer播放网络视频的实现方法
- Android开发之MediaPlayer多媒体(音频,视频)播放工具类
- 21天学习android开发教程之MediaPlayer
- Android提高之MediaPlayer播放网络音频的实现方法
- Android提高之MediaPlayer音视频播放
- 网络播放 MediaPlayer: Prepare failed status 0x1
- MediaPlayer
- 相对完美的后台Service实现播放音乐功能
- 使用Vitamio播放rtsp流媒体并实现动态截图
- android-----简单的音乐播放器
- SurfaceView在线视频播放
- Android的VideoView如何循环播放
- Android_视频播放的简单使用方法
- android语音聊天
- mediaplayer stop called in state 1
- android app小白试水4-添加mediaplayer
- IOS获取本地音乐
- SurfaceView+MediaPlayer实现视频播放