0910Android基礎MediaPlayer

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();
                }
發佈了56 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章