前言
VideoView是Vitamio最重要的类之一,使用方法与系统的VideoView差不多,提供诸多方法供开发者调用,实现各种强大的播放功能,例如外挂字幕,画面缩放、设置画面质量等。
正文
VideoView
类概述
public class VideoView extends SurfaceView implements MediaController.MediaPlayerControl
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)
参数
layout缩放参数
aspectRation宽高比,为0将自动检测。
public boolean isValid()
public void setVideoPath(String path)
public void setVideoURI(Uri uri)
public void stopPlayback()
public void setMediaController(MediaController controller)
参数
controller媒体控制器,注意是io.vov.vitamio.widget.MediaController。
public void setOnPreparedListener(OnPreparedListener l)
public void setOnCompletionListener(OnCompletionListener l)
public void setOnErrorListener(OnErrorListener l)
public void setOnBufferingUpdateListener(OnBufferingUpdateListener l)
public void setOnSeekCompleteListener(OnSeekCompleteListener l)
public void setOnSubtitleUpdateListener(OnSubtitleUpdateListener l)
public void setOnInfoListener(OnInfoListener l)
public boolean onTouchEvent(MotionEvent ev)
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 void setVolume(float leftVolume, float rightVolume)
参数
leftVolume左声道
rightVolume右声道
public int getVideoWidth()
public int getVideoHeight()
public float getVideoAspectRatio()
public void setVideoQuality(int quality)
参数
quality参见MediaPlayer的常量:VIDEOQUALITY_LOW(流畅)、VIDEOQUALITY_MEDIUM(普通)、VIDEOQUALITY_HIGH(高质)。
public void setBufferSize(int bufSize)
public boolean isBuffering()
public void setMetaEncoding(String encoding)
public String getMetaEncoding()
public HashMap<String, Integer> getAudioTrackMap(String encoding)
public int getAudioTrack()
public void setAudioTrack(int audioIndex)
public void setSubShown(boolean shown)
参数
shown true表示显示字幕
public void setSubEncoding(String encoding)
参数
encoding字幕编码。如果为null将自动检测。
public int getSubLocation()
public void setSubPath(String subPath)
public String getSubPath()
public void setSubTrack(int trackId)
设置字幕编号。
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