Unity插件分享——AVPro Video(六)

554 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第26天,点击查看活动详情

概述

本篇文章主要分享一个作者平时在开发过程中使用过的感觉还比较好的插件,希望对各位日后开发过程中能够有所帮助。本篇文章主要分享的插件是AVPro Video 。一款非常好用的视频播放插件。在Unity中除了自带的VideoPlayer,在一个比较好用,的就是AVPro Video插件。

使用

上一篇文章我们讲解了如何在Unity中使用动态切换视频的地址,本篇文章主要介绍一下AVPro插件的是相关事件。
在开发过程中,我们往往需要在视频播放到指定的位置去做对应的事,除了使用时间进行判断外,AVPro插件还提供有Event时间,相对于使用时间进行判断,Event事件更加准确,更加方便。

image.png 我们通过F12我们可以直接看到,AVPro插件有非常多的事件,今天主要简单介绍几个常用的事件。\

  1. MediaPlayerEvent.EventType.Closing:当我们关闭视频播放器的时候会触发
  2. MediaPlayerEvent.EventType.Error:当视频播放出错是触发
  3. MediaPlayerEvent .EventType .FinishedPlaying :当视频播放完毕时触发
  4. MediaPlayerEvent .EventType .FirstFrameReady:当视频准备完毕时触发
  5. MediaPlayerEvent.EventType.MetaDataReady:当媒体数据准备准备中触发
  6. MediaPlayerEvent .EventType .ReadyToPlay:当准备去播放时触发
  7. MediaPlayerEvent .EventType .Started:当开始播放时触发

我个人比较常用的一般是Started,ReadyToPlay,Error,FirstFrameReady,FinishedPlaying。这里应用场景比较多的就是,当我们要播放一个比较大的视频的时候,加载过程可能会非常慢,这样我们就可以在加载的时候添加一个等待界面,加载完毕后自动关闭等待界面。这时候FirstFrameReady就非常实用
实用方法就是如下,在Switch中添加对应的函数引用即可

private void MediaEventHandler(MediaPlayer arg0, MediaPlayerEvent.EventType arg1, ErrorCode arg2)
{
    switch (arg1)
    {
        case MediaPlayerEvent.EventType.Closing:
            Debug.Log("关闭播放器触发");
            break;
        case MediaPlayerEvent.EventType.Error:
            Debug.Log("报错误时触发");
            break;
        case MediaPlayerEvent.EventType.FinishedPlaying://注意:如果视频设置为循环播放模式,则不触发此项
            Debug.Log("播放完成触发");
            break;
        case MediaPlayerEvent.EventType.FirstFrameReady:
            Debug.Log("准备完触发");
            break;
        case MediaPlayerEvent.EventType.MetaDataReady:
            Debug.Log("媒体数据准备准备中触发");
            break;
        case MediaPlayerEvent.EventType.ReadyToPlay:
            Debug.Log("准备去播放触发");
            break;
        case MediaPlayerEvent.EventType.Started://注意:每暂停之后的开始播放都会触发一次
            Debug.Log("开始播放触发");
            break;
        default:
            Debug.Assert(false);
            break;
    }
}

结束

今天的AVPro的使用方法就介绍到这里,下一篇文章我们将扩展一下AVPro插件中的案例场景中没有的功能全屏和窗口化的功能,敬请期待……