android 多媒体编程(一) MediaPlayer 播放音频

MediaPlayer播放音频

还有一种是soundpool 播放多个短促声音 游戏常用

简单播放

0.添加权限:
   
   
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>

1.播放SD卡音频
   
   
//sd卡歌曲
mediaplayer=new MediaPlayer();
mediaplayer.setDataSource("/storage/sdcard/cbg.mp3");
mediaplayer.prepare();//准备工作
mediaplayer.start();
2.播放网络音频
因为网络音频需要耗时 需要 异步加载  监听加载完成后 播放
   
   
mediaplayer=new MediaPlayer();
mediaplayer.setDataSource("http://mp3hot.9ku.com/hot/2009/08-27/186947.mp3");
mediaplayer.prepareAsync();
//准备完成的监听
mediaplayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mediaplayer.start();
}
});
3.播放自带音频      
不需要prepare 方法
   
   
mediaplayer = MediaPlayer.create(this, R.raw.dp);
mediaplayer.start();

常用方法

暂停播放
   
   
if (mediaplayer!=null&&mediaplayer.isPlaying()) {
mediaplayer.pause();
btPlay.setImageResource(R.mipmap.pause);
}
停止播放
   
   
public void stop(){
if(mediaplayer!=null){
mediaplayer.stop();//stop 后 要想再播放 需要重新new mediaplayer
mediaplayer.release();//释放
mediaplayer=null;
btPlay.setImageResource(R.mipmap.pause);
}
}
    
    
getCurrentPosition( ):得到当前的播放位置
getDuration() :得到文件的时间
getVideoHeight() :得到视频高度
getVideoWidth() :得到视频宽度
isLooping():是否循环播放
isPlaying():是否正在播放
pause():暂停
prepare():准备(同步)
prepareAsync():准备(异步)
release():释放MediaPlayer对象
reset():重置MediaPlayer对象
seekTo(int msec):指定播放的位置(以毫秒为单位的时间)
setAudioStreamType(int streamtype):指定流媒体的类型
setDisplay(SurfaceHolder sh):设置用SurfaceHolder来显示多媒体
setLooping(boolean looping):设置是否循环播放
setOnBufferingUpdateListener(MediaPlayer.OnBufferingUpdateListener listener): 网络流媒体的缓冲监听
setOnCompletionListener(MediaPlayer.OnCompletionListener listener): 网络流媒体播放结束监听
setOnErrorListener(MediaPlayer.OnErrorListener listener): 设置错误信息监听
setOnVideoSizeChangedListener(MediaPlayer.OnVideoSizeChangedListener listener): 视频尺寸监听
setScreenOnWhilePlaying(boolean screenOn):设置是否使用SurfaceHolder显示
setVolume(float leftVolume, float rightVolume):设置音量
start():开始播放
stop():停止播放


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值