MediaPlayer
MediaPlayer状态图解
首先需要创建出一个Media对象,然后调用setDataSource()方法来设置音频文件的路径,在调用prepare()方法使MediaPlayer进入到准备状态,接下来调用start()方法就可以开始播放视频。
MediaPlayer常用方法
方法 说明
MediaPlayer 构造方法
create 创建一个要播放的多媒体
getCurrentPosition 得到当前播放位置
getDuration 得到文件的时间
getVideoHeight 得到视频的高度
getVideoWidth 得到视频的宽度
isLooping 是否循环播放
isPlaying 是否正在播放
pause 暂停
prepare 准备(同步)
prepareAsync 准备(异步)
release 释放MediaPlayer对象
reset 重置MediaPlayer对象
seekTo 指定播放的位置(以毫秒为单位的时间)
setAudioStreamType 设置流媒体的类型
setDataSource 设置多媒体数据来源
setDisplay 设置用SurfaceHolder来显示多媒体
setLooping 设置是否循环播放
setOnButteringUpdateListener 网络流媒体的缓冲监听
setOnErrorListener 设置错误信息监听
setOnVideoSizeChangedListener 视频尺寸监听
setScreenOnWhilePlaying 设置是否使用SurfaceHolder来保持屏幕显示
setVolume 设置音量
start 开始播放
stop 停止播放
MediaPlayer的Demo
// 创建音乐播放器对象。
MediaPlayer player=new MediaPlayer();
// Resets the MediaPlayer to its uninitialized state.
player.reset();
Log.d("播放音乐的路径", "╮(╯▽╰)╭ "+Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getAbsolutePath());
// 获得内部sdcard音乐文件夹
File musicFile= Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);
// 获得文件夹下的所有文件。
File[] files=musicFile.listFiles();
// 打印所有的歌曲路径
for(File file:files){
Log.d("显示所有歌曲路径", "→"+file.getAbsolutePath());
}
try {
// Sets the data source (file-path or http/rtsp URL) to use.
player.setDataSource(files[0].getAbsolutePath());
player.prepare();
player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
} catch (IOException e) {
e.printStackTrace();
}