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的发布时间,请大家耐心等候,先看看文档热热身 :)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些使用 VideoView 的技巧: 1. 媒体控制:VideoView 默认会显示一个简单的媒体控制栏,包含播放、暂停、快进、快退等功能。你可以使用 VideoView 的 setMediaController() 方法设置自定义的媒体控制器。例如,你可以创建一个自定义的媒体控制器类,然后将其传递给 VideoView 实例的 setMediaController() 方法。 2. 横竖屏切换:当用户切换横竖屏时,VideoView 的尺寸和位置也会相应地改变。你可以通过在 Activity 的配置文件中设置 android:configChanges 属性来避免 Activity 重新创建,从而保持 VideoView 的状态。 3. 缓存控制:VideoView 默认会自动缓存一定量的媒体数据,以提高播放效果。你可以通过设置 VideoView 的 setBufferSize() 方法来调整缓存大小,或者使用 setVideoURI() 方法的第二个参数来设置缓存路径。 4. 多种格式支持:VideoView 支持 MP4、3GP、WebM 等多种视频格式。如果你想要播放其他格式的视频,可以使用第三方库,例如 Vitamio。 5. 错误处理:当发生播放错误时,VideoView 会显示一个默认的错误提示。你可以通过设置 VideoView 的 setOnErrorListener() 方法来监听错误事件,并且自定义错误处理逻辑。 6. 视频截图:如果你想要获取视频的某一帧作为图片,你可以使用 VideoView 的 getDrawingCache() 方法来获取 VideoView 的截图。注意,这个方法只能在 VideoView 显示完成后才能调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值