




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Vitamio API for Android : MediaPlayer類概述public class MediaPlayerMediaPlayer可控制播放音樂/視頻和網(wǎng)絡(luò)流??梢詮腣ideoView找到使用這個(gè)類的方法。這個(gè)類與android.media.MediaPlayer的作用大部分相同。請(qǐng)參閱開發(fā)者指南音頻和視頻使用MediaPlayer。常量public static final int MEDIA_ERROR_UNKNOWN播放錯(cuò)誤,未知錯(cuò)誤。常量值:0public static final int MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_
2、PLAYBACK播放錯(cuò)誤(一般視頻播放比較慢或視頻本身有問題會(huì)引發(fā))。常量值:200public static final int MEDIA_INFO_VIDEO_TRACK_LAGGING視頻過于復(fù)雜,無法解碼:不能快速解碼幀。此時(shí)可能只能正常播放音頻。參見MediaPlayer.OnInfoListener。常量值:700public static final int MEDIA_INFO_BUFFERING_STARTMediaPlayer暫停播放等待緩沖更多數(shù)據(jù)。常量值:701public static final int MEDIA_INFO_BUFFERING_ENDMediaP
3、layer在緩沖完后繼續(xù)播放。常量值:702public static final int MEDIA_INFO_NOT_SEEKABLE媒體不支持Seek,例如直播流。常量值:801public static final int MEDIA_INFO_DOWNLOAD_RATE_CHANGEDav_read_frame()的速度(KB/s)。常量值:901public static final int VIDEOQUALITY_LOW視頻質(zhì)量流暢。常量值:-16public static final int VIDEOQUALITY_MEDIUM視頻質(zhì)量普通。常量值:0public stat
4、ic final int VIDEOQUALITY_HIGH視頻質(zhì)量高質(zhì)。常量值:16public static final int SUBTITLE_INTERNAL字幕顯示來自內(nèi)置字幕。常量值:0public static final int SUBTITLE_EXTERNAL字幕顯示來自外置字幕。常量值:1public static final String SUB_TYPESVitamio支持的外置字幕類型。常量值: “.srt”, “.ssa”, “.smi”, “.txt”, “.sub”, “.ass” 公共方法public static final boolean isLibr
5、aryLoaded()動(dòng)態(tài)鏈接庫(so)是否已經(jīng)成功加載完成。public void setDisplay(SurfaceHolder sh)設(shè)置用于顯示媒體視頻的SurfaceHolder。這個(gè)調(diào)用是可選的。只顯示音頻而不顯示視頻時(shí)不調(diào)用這個(gè)方法(例如后臺(tái)播放)。參數(shù)sh 用戶顯示視頻的SurfaceHolderpublic void setDataSource(Context context, Uri uri)設(shè)置多媒體數(shù)據(jù)源,例如context Uri。(支持raw資源訪問,例如:android.resource:/com.your.package/R.raw.your_resource
6、_id)參數(shù)context 獲取ContentResolver時(shí)要使用的Contexturi 你要播放的uri異常IllegalArgumentException 狀態(tài)無效時(shí)引發(fā)(uri或context為空時(shí)引發(fā))public native void setDataSource(String path)設(shè)置數(shù)據(jù)源(文件路徑或http/rtsp/mms URL)。public native void setDataSource(FileDescriptor fd)設(shè)置數(shù)據(jù)源(FileDescriptor)。調(diào)用者在調(diào)用后要自行關(guān)閉FileDescriptor,最安全的做法是一返回就馬上關(guān)閉。pu
7、blic native void prepare()預(yù)處理播放器為播放做準(zhǔn)備,方法是同步執(zhí)行。設(shè)置完數(shù)據(jù)源和顯示的Surface后,你需要調(diào)用prepare()或prepareAsync()。對(duì)于文件,你可以直到媒體播放器準(zhǔn)備播放時(shí)再調(diào)用prepare。public native void prepareAsync()預(yù)處理播放器為播放做準(zhǔn)備,方法是異步執(zhí)行。設(shè)置完數(shù)據(jù)源和顯示的Surface后,你需要調(diào)用prepare()或prepareAsync()。對(duì)于流,你應(yīng)該調(diào)用prepareAsync(),立即返回,而不是阻塞,直到足夠的數(shù)據(jù)被緩沖。public void start()開始或繼續(xù)
8、播放。如果此前已暫停播放,那么就從暫停的地方播放。如果已經(jīng)停止播放或還未開始播放,播放將從頭開始。public void stop()與pause()相同。public void pause()暫停播放。調(diào)用start()恢復(fù)。public void setWakeMode(Context context, int mode)設(shè)置MediaPlayer的底層電源管理??梢栽贛ediaPlayer沒有通過SurfaceHolder 設(shè)置setDisplay播放時(shí)使用,從而使用高級(jí)別的setScreenOnWhilePlaying特性。本方法在MediaPlayer訪問低級(jí)別電源管理控制設(shè)備電源時(shí)
9、使用。參數(shù)是一個(gè)android.os.PowerManager喚醒組合標(biāo)識(shí)。使用這個(gè)方法需要WAKE_LOCK權(quán)限。默認(rèn)情況下不使用以保持設(shè)備喚醒播放。參數(shù)contextmode 設(shè)置PowerManger電源/鎖定模式public void setScreenOnWhilePlaying(boolean screenOn)控制是否使用附加SurfaceHolder保持屏幕高亮持續(xù)播放視頻。本方法可能優(yōu)于使用setWakeMode,因?yàn)樗恍枰獞?yīng)用程序訪問底層喚醒鎖的權(quán)限。參數(shù)screenOn 設(shè)置true將保持屏幕高亮,反之允許它關(guān)閉。public native int getVideoWi
10、dth()獲取視頻寬度。返回值返回視頻的寬度,沒有視頻或?qū)挾壬形创_定時(shí)返回0??梢酝ㄟ^注冊(cè)O(shè)nVideoSizeChangedListener當(dāng)寬度有效時(shí)獲得一個(gè)通知。public native int getVideoHeight()獲取視頻高度。返回值返回視頻的高度,沒有視頻或高度尚未確定時(shí)返回0。可以通過注冊(cè)O(shè)nVideoSizeChangedListener當(dāng)高度有效時(shí)獲得一個(gè)通知。public native boolean isPlaying()檢測(cè)MediaPlayer是否正在播放。public native void seekTo(long msec)設(shè)置到指定時(shí)間位置播放。參數(shù)
11、msec 從開始位置到msec的偏移量(以毫秒為單位)異常IllegalStateException 內(nèi)部播放引擎未初始化引發(fā)public native long getCurrentPosition()獲取當(dāng)前播放位置。public native Bitmap getCurrentFrame()獲取當(dāng)前視頻幀。(可用于截圖)public native long getDuration()獲取多媒體播放持續(xù)時(shí)間。public void release()釋放與MediaPlayer相關(guān)的資源。當(dāng)你使用完MediaPlayer完后調(diào)用此方法是一個(gè)好的編程習(xí)慣。public void reset(
12、)復(fù)位(reset)MediaPlayer至未初始化狀態(tài)。調(diào)用此方法后,你需要再次設(shè)置數(shù)據(jù)源,并通過prepare()來初始化。public native void setVolume(float leftVolume, float rightVolume)設(shè)置音量。(范圍0.01.0之間)public void setOnPreparedListener(OnPreparedListener listener)注冊(cè)一個(gè)回調(diào)函數(shù),在視頻預(yù)處理完成后調(diào)用。public void setOnCompletionListener(OnCompletionListener l)注冊(cè)一個(gè)回調(diào)函數(shù),視頻播
13、放完成后調(diào)用。public void setOnErrorListener(OnErrorListener l)注冊(cè)一個(gè)回調(diào)函數(shù),在異步操作調(diào)用過程中發(fā)生錯(cuò)誤時(shí)調(diào)用。例如視頻打開失敗。public void setOnBufferingUpdateListener(OnBufferingUpdateListener l)注冊(cè)一個(gè)回調(diào)函數(shù),在網(wǎng)絡(luò)視頻流緩沖變化時(shí)調(diào)用。public void setOnSeekCompleteListener(OnSeekCompleteListener l)注冊(cè)一個(gè)回調(diào)函數(shù),在seek操作完成后調(diào)用。public void setOnVideoSizeChang
14、edListener(OnVideoSizeChangedListener listener)注冊(cè)一個(gè)回調(diào)函數(shù),在視頻大小已知或更新后調(diào)用。public void setOnSubtitleUpdateListener(OnSubtitleUpdateListener l)注冊(cè)一個(gè)回調(diào)函數(shù),在字幕需要顯示時(shí)調(diào)用。public void setOnInfoListener(OnInfoListener l)注冊(cè)一個(gè)回調(diào)函數(shù),在有警告或錯(cuò)誤信息時(shí)調(diào)用。例如:開始緩沖、緩沖結(jié)束、下載速度變化。public void releaseDisplay()在播放音頻的時(shí)候調(diào)用這個(gè)有效果。public nat
15、ive float getVideoAspectRatio()獲取視頻寬高比例。返回值返回視頻的寬高比。沒有視頻或者寬高不正確返回0。參見VideoView.setVideoLayout。public native void setVideoQuality(int quality)設(shè)置視頻質(zhì)量。如果播放延遲比較嚴(yán)重,你可以嘗試使用VIDEOQUALITY_LOW(流暢),默認(rèn)VIDEOQUALITY_LOW(流暢)。參數(shù)quality 參見MediaPlayer的常量:VIDEOQUALITY_LOW(流暢)、VIDEOQUALITY_MEDIUM(普通)、VIDEOQUALITY_HIGH(
16、高質(zhì))。public native void setDeinterlace(boolean deinterlace)設(shè)置視頻反交錯(cuò)。public native void setBufferSize(int bufSize)設(shè)置視頻緩沖大小(默認(rèn)1024KB)單位Byte。public native boolean isBuffering()檢測(cè)是否緩沖完畢。public native int getBufferProgress()參見OnBufferingUpdateListener。public native void setMetaEncoding(String encoding)設(shè)置元數(shù)
17、據(jù)編碼。例如:UTF-8public native String getMetaEncoding()獲取元數(shù)據(jù)編碼。public HashMap<string, integer=""> getAudioTrackMap(String encoding)獲取視頻中嵌入的音軌。例如:Englishpublic native int getAudioTrack()設(shè)置播放音軌編號(hào)。public native void setAudioTrack(int audioIndex)設(shè)置音軌編號(hào),必須使用getAudioTrackMap的返回值。public void set
18、InitialAudioTrack(int audioIndex)設(shè)置初始化音軌。public void setInitialSubTrack(int subIndex)設(shè)置初始化字幕。public native void setSubShown(boolean shown)設(shè)置是否顯示字幕。參數(shù)shown true表示顯示字幕public native void setSubEncoding(String encoding)設(shè)置字幕編碼。參數(shù)encoding 字幕編碼。如果為null將自動(dòng)檢測(cè)。public native int getSubLocation()獲取字幕位置類型。0為內(nèi)嵌字幕
19、,1為外掛字幕。public native void setSubPath(String subPath)設(shè)置外掛字幕路徑。必須是本地文件路徑。public native String getSubPath()獲取外掛字幕路徑。public native void setSubTrack(int trackId)設(shè)置字幕編號(hào)。必須是getSubTrackMap的返回值。public native int getSubTrack()獲取字幕編號(hào)。public HashMap<string, integer=""> getSubTrackMap(String enc
20、oding)獲取視頻內(nèi)嵌字幕集合。參數(shù)encoding 格式化字符串編碼。如果為null將自動(dòng)檢測(cè)。返回值返回字幕名稱和字幕編號(hào)組成的Map。受保護(hù)方法protected void finalize()調(diào)用了native_finalize。MediaPlayer內(nèi)部接口public interface OnBufferingUpdateListenervoid onBufferingUpdate(MediaPlayer mp, int percent)更新流媒體緩存狀態(tài)。參數(shù)mp 要更新的MediaPlayerpercent 已緩沖的百分比數(shù)(0 100)public interface OnErrorListenerboolean onError(MediaPlayer mp, int what, int extra)錯(cuò)誤信息。參數(shù)mp 錯(cuò)誤相關(guān)的MediaPlayerwhat 錯(cuò)誤類型,參見MEDIA_ERROR_UNKNOWN、MEDIA_ERROR_NOT_VALID_FOR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 肉雞養(yǎng)殖購銷合同樣本
- 建筑外墻清洗服務(wù)合同范本
- 合同終止通知書模板與合同范本
- 工程技術(shù)人才勞動(dòng)合同書
- 應(yīng)收賬款質(zhì)押貸款合同
- 機(jī)動(dòng)車維修服務(wù)合同標(biāo)準(zhǔn)范本
- 勞動(dòng)合同簡化版合同模板
- 個(gè)人貸款合同還款計(jì)劃書范本大全
- 簡版?zhèn)€人商業(yè)空間租賃合同
- 集中隔離觀察點(diǎn)培訓(xùn)課件
- 后循環(huán)缺血治療
- 體育學(xué)科核心素養(yǎng)解析
- 2024年浙江紹興杭紹臨空示范區(qū)開發(fā)集團(tuán)有限公司招聘筆試真題
- 2025年體檢科醫(yī)療質(zhì)量控制工作計(jì)劃
- 2024年萍鄉(xiāng)衛(wèi)生職業(yè)學(xué)院單招職業(yè)適應(yīng)性測(cè)試題庫參考答案
- 飛行器小學(xué)生課件
- 無人機(jī)法律法規(guī)與安全飛行 第2版2-2 領(lǐng)空
- 《單片機(jī)應(yīng)用實(shí)訓(xùn)教程》課件第4章
- 應(yīng)急突發(fā)處置
- 2024年定融認(rèn)購協(xié)議合同范文
- 系統(tǒng)思維與系統(tǒng)決策:系統(tǒng)動(dòng)力學(xué)(中央財(cái)經(jīng)大學(xué))知到智慧樹章節(jié)答案
評(píng)論
0/150
提交評(píng)論