MediaPlayer播放音频

方法

播放暂停停止start() pause() stop()

静态方法

MediaPlayer mPlayer = MediaPlayer.create(context,uri);
MediaPlayer mPlayer = MediaPlayer.create(context,int resid);
//音频资源文件一般放在res/raw目录下

无参构造方法

当需要播放多个音频的时候,静态方法加载就不合适了

MediaPalyer mPlayer = new MediaPalyer();
mPlayer.reset();//重置
mPlayer.setDataSource(path);
.....................(file,offset,length);
.....................(file);
.....................(context,uri);
mPlayer.prepare()//准备
mPlayer.start();//播放

监听事件

//播放完成事件监听
mPlayer.setOnCompletionListener(new OnCompletionListener())
//播放错误事件监听
mPlayer.setErrorListener(new OnErrorListener())
//调用prepare()方法时的监听器
mPlayer.setOnPreparedListener(new OnPreparedListener())
//调用seek()方法时的监听器
mPlayer.setOnSeekCompleteListener(new OnSeekCompleteListener())

播放原始资源文件

AssetManager am = getAssets();
AssetFileDeseriptor afd = am.openFd(music);
MediaPlayer mPlayer = new MediaPlayer();
mPlayer.setDataSource(adf.getFileDescriptor(),adf.getStartOffset(),adf.getLength());
mPlayer.prepare();
mPlayer.start();

播放外部存储器的音频文件

MediaPlayer mPlayer = new MediaPlayer();
mPlayer.setDataSource("/mnt/sdcard/mysong.mp3");
mPlayer.prepare();
mPlayer.start();

播放网络的音频文件

Uri uri = Uir.parse("htttp://www.baidu.com/mysong.mp3");
MediaPlayer mPlayer = new MediaPlayer();
mPlayer.setDataSource(this,uri);
mPlayer.prepare();
mPlayer.start();

prepare()与prepareAsync()的区别

prepareAsync()是异步的,不会阻塞UI线程

你可能感兴趣的:(MediaPlayer播放音频)