Vitamio中文API文檔(2)—— VideoView




前言

VideoView是Vitamio最重要的類之一,使用方法與系統的VideoView差不多,提供諸多方法供開發者調用,實現各種強大的播放功能,例如外掛字幕,畫面縮放、設置畫面質量等。

 

聲明

歡迎轉載,但請保留文章原始出處:) 

Vitamio:http://www.vitamio.org

農民伯伯: http://www.cnblogs.com/over140/

 

正文 

 

VideoView

整理:農民伯伯


類概述

public class VideoView extends SurfaceView implements MediaController.MediaPlayerControl

用於播放視頻文件。VideoView可以加載各種來源的圖像(如資源或ContentProvider),注意計算視頻尺寸,以便在任意布局管理器中使用,它還提供了諸如縮放顯示選項。

VideoView也提供封裝了許多MediaPlayer的方法,例如getVideoWidth、setSubShown。


常量

public static final int VIDEO_LAYOUT_ORIGIN

縮放參數,原始畫面大小。

常量值:0


public static final int VIDEO_LAYOUT_SCALE

縮放參數,畫面全屏。

常量值:1


public static final int VIDEO_LAYOUT_STRETCH

縮放參數,畫面拉伸。

常量值:2

 

 

      public static final int VIDEO_LAYOUT_ZOOM

      縮放參數,畫面裁剪。

     常量值:3


公共方法

public void setVideoLayout(int layout, float aspectRatio)

      獲取掃描視頻的Uri。

參數

layout 縮放參數

aspectRation 寬高比,為0將自動檢測。


public boolean isValid()

Surface是否有效。 參見Surface的isValid方法。


public void setVideoPath(String path)

設置視頻路徑。


public void setVideoURI(Uri uri)

設置視頻URI。(可以是網絡視頻地址)


public void stopPlayback()

停止視頻播放,並釋放資源。


public void setMediaController(MediaController controller)

設置媒體控制器。

參數

controller 媒體控制器,注意是io.vov.vitamio.widget.MediaController



public void setOnPreparedListener(OnPreparedListener l)

注冊一個回調函數,在視頻預處理完成后調用。在視頻預處理完成后被調用。此時視頻的寬度、高度、寬高比信息已經獲取到,此時可調用seekTo讓視頻從指定位置開始播放。


public void setOnCompletionListener(OnCompletionListener l)

注冊一個回調函數,視頻播放完成后調用。


public void setOnErrorListener(OnErrorListener l)

注冊一個回調函數,在異步操作調用過程中發生錯誤時調用。例如視頻打開失敗。


public void setOnBufferingUpdateListener(OnBufferingUpdateListener l)

注冊一個回調函數,在網絡視頻流緩沖變化時調用。


public void setOnSeekCompleteListener(OnSeekCompleteListener l)

注冊一個回調函數,在seek操作完成后調用。


public void setOnSubtitleUpdateListener(OnSubtitleUpdateListener l)

注冊一個回調函數,在字幕需要顯示時調用。


public void setOnInfoListener(OnInfoListener l)

注冊一個回調函數,在有警告或錯誤信息時調用。例如:開始緩沖、緩沖結束、下載速度變化。


public boolean onTouchEvent(MotionEvent ev)

處理顯示/隱藏MediaController


public void start()

開始播放。


public void pause()

暫停播放。


public void suspend()

掛起(暫時沒有實現功能)


public void resume()

恢復播放。


public long getDuration()

獲取視頻播放時長。


public long getCurrentPosition()

獲取當前播放位置。


public void seekTo(long msec)

設置播放位置。

參數

msec 位置


public boolean isPlaying()

是否正在播放。


public int getBufferPercentage()

獲取緩沖百分比。


public int getVideoWidth()

獲取視頻寬度。


public int getVideoHeight()

獲取視頻高度。


public float getVideoAspectRatio()

設置視頻寬高比例。沒有視頻或者寬高不正確返回0


public void setVideoQuality(int quality)

設置視頻質量。

參數

quality 參見MediaPlayer的常量:VIDEOQUALITY_LOW(流暢)、VIDEOQUALITY_MEDIUM(普通)、VIDEOQUALITY_HIGH(高質)。


public void setBufferSize(int bufSize)

設置視頻緩沖大小。默認1024KB,單位byte


public boolean isBuffering()

檢測是否緩沖完畢。


public void setMetaEncoding(String encoding)

設置元數據編碼。例如:UTF-8


public String getMetaEncoding()

獲取元數據編碼。


public HashMap<String, Integer> getAudioTrackMap(String encoding)

獲取視頻中嵌入的音軌。例如:English


public int getAudioTrack()

設置播放音軌編號。


public void setAudioTrack(int audioIndex)

設置音軌編號,必須使用getAudioTrackMap的返回值。


public void setSubShown(boolean shown)

設置是否顯示字幕。

參數

shown true表示顯示字幕


public void setSubEncoding(String encoding)

設置字幕編碼。

參數

encoding 字幕編碼。如果為null將自動檢測。


public int getSubLocation()

獲取字幕位置類型。0為內嵌字幕,1為外掛字幕。


public void setSubPath(String subPath)

設置外掛字幕路徑。必須是本地文件路徑。


public String getSubPath()

獲取外掛字幕路徑。


public void setSubTrack(int trackId)

設置字幕編號。必須是getSubTrackMap的返回值。


public int getSubTrack()

獲取字幕編號。


public HashMap<String, Integer> getSubTrackMap(String encoding)

獲取視頻內嵌字幕集合。

參數

encoding 格式化字符串編碼。如果為null將自動檢測。

返回值

返回字幕名稱和字幕編號組成的Map


public boolean canPause()

是否可暫停。(暫時沒有實現功能)


public boolean canSeekBackward()

(暫時沒有實現功能)


public boolean canSeekForward()

(暫時沒有實現功能)


受保護方法

protected boolean isInPlaybackState()

是否處於正在播放的狀態。

 

 

參考 

Android中文API(125) —— VideoView

 

結束

具體效果,大家可參照VPlayer播放的設置界面。 關於Vitamio的發布時間,請大家耐心等候,先看看文檔熱熱身 :)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM