Vitamio中文API文档(1)—— VideoView

前言

VideoView是Vitamio最重要的类之一,使用方法与系统的VideoView差不多,提供诸多方法供开发者调用,实现各种强大的播放功能,例如外挂字幕,画面缩放、设置画面质量等。

正文

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 void setVolume(float leftVolume, float rightVolume)

设置音量。

参数

leftVolume左声道

rightVolume右声道

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

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)

设置字幕编号。


 
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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值