1.支持的媒體流:(三種)
1.內(nèi)部的URI? 可以通過ContentResolver來獲取
2.外部URL(流)
3.本地資源
2.使用:
1)獲得MediaPlayer實例:
? ? ?1.MediaPlayer mp =newMediaPlayer();
? ? ?2.MediaPlayer mp = MediaPlayer.create(this, R.raw.test);//無需再調(diào)用setDataSource
? ? ? ? 或者 create(Context context, Uri uri, SurfaceHolder holder)
2)設(shè)置播放文件:
? ? ?1.raw下的資源:MediaPlayer.create(this, R.raw.test);
? ? ?2.本地文件路徑:mp.setDataSource("/sdcard/test.mp3");
? ? ?3.網(wǎng)絡(luò)URL文件:mp.setDataSource("http://www.xxx.com/music/test.mp3");
? ? 4.assets文件:AssetFileDescriptor fileDescriptor = getAssets().openFd("rain.mp3");
m_mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(),fileDescriptor.getStartOffset(), fileDescriptor.getLength());
3)主要方法:
? ? ? getCurrentPosition( ):得到當前的播放位置
? ? ? getDuration() :得到文件的時間
? ? ? getVideoHeight() :得到視頻高度
? ? ? getVideoWidth() :得到視頻寬度
? ? ? isLooping():是否循環(huán)播放
? ? ? isPlaying():是否正在播放
? ? ? pause():暫停
? ? ? prepare():準備(同步)
? ? ? prepareAsync():準備(異步)
? ? ? release():釋放MediaPlayer對象
? ? ? reset():重置MediaPlayer對象
? ? ? seekTo(int msec):指定播放的位置(以毫秒為單位的時間)
? ? ? setAudioStreamType(int streamtype):指定流媒體的類型
? ? ? setDisplay(SurfaceHolder sh):設(shè)置用SurfaceHolder來顯示多媒體
? ? ? setLooping(boolean looping):設(shè)置是否循環(huán)播放
? ? ? setOnBufferingUpdateListener(MediaPlayer.OnBufferingUpdateListener listener):
? ? ? 網(wǎng)絡(luò)流媒體的緩沖監(jiān)聽
? ? ? setOnCompletionListener(MediaPlayer.OnCompletionListener listener):
? ? ? 網(wǎng)絡(luò)流媒體播放結(jié)束監(jiān)聽
? ? ? setOnErrorListener(MediaPlayer.OnErrorListener listener):
? ? ? 設(shè)置錯誤信息監(jiān)聽
? ? ? setOnVideoSizeChangedListener(MediaPlayer.OnVideoSizeChangedListener listener):
? ? ? 視頻尺寸監(jiān)聽
? ? ? setScreenOnWhilePlaying(boolean screenOn):設(shè)置是否使用SurfaceHolder顯示
? ? ? setVolume(float leftVolume, float rightVolume):設(shè)置音量
? ? ? start():開始播放
? ? ? stop():停止播放