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();
}