美文网首页unity插件
2020-08-12 Unity视频播放器插件 AVPro Vi

2020-08-12 Unity视频播放器插件 AVPro Vi

作者: VECTOR_Y | 来源:发表于2020-08-14 11:04 被阅读0次

    Unity自带VideoPlay用来播放视频有bug,在移动端测试无法正常使用Url播放,所以找到AVProVideo,这个插件很好用,移动端亲测可用,功能也全,这里记录下使用心得

    插件分享

    链接:https://pan.baidu.com/s/1MWgasnIagOOijSSG2FYrHw
    提取码:ttrj

    踩坑

    开始遇到打包Android64位视频播放不出来的问题,把AVPro Video相关的插件设置成64位就好

    创建AVPro Video组件


    image.png

    创建UGUI组件


    image.png

    事件接收

    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;
     
            }
        }
    

    进度显示

        void DoUpdateVideoProcess()
         {
             //获取当前播放时长
             float tCurrentTime = media.Control.GetCurrentTimeMs();
             //获取视频总长度
             float tVideoTime = media.Info.GetDurationMs();
             //计算出对应的播放进度赋值给显示播放进度的进度条
             Slider_pro.value = tCurrentTime/tVideoTime;
         }
    

    时间显示

    void UpdateTimeText()
         {
             //对当前播放时间转换时间格式
             //转化为 秒
             int tCurrentSeconds = (int)media.Control.GetCurrentTimeMs() / 1000;
             //获取当前分数
             int tCurrentMin = tCurrentSeconds / 60;
             //重新赋值剩余多少秒
             tCurrentSeconds = tCurrentSeconds%60;
             string tCurrentSecondStr = tCurrentSeconds < 10 ? "0" + tCurrentSeconds : tCurrentSeconds.ToString();
     
             //对总时间转化时间格式
             //转化为秒
             int tVideoTimeSeconds = (int)media.Info.GetDurationMs() / 1000;
             //获取总的分数
             int tVideoTimeMin = tVideoTimeSeconds / 60;
             //重新复制剩余多少秒
             tVideoTimeSeconds = tVideoTimeSeconds%60;
             string tVideoTimeSecondStr = tVideoTimeSeconds < 10 ? "0" + tVideoTimeSeconds : tVideoTimeSeconds.ToString();
     
             //拼接一下时间显示字符串
             string tTime = string.Format("{0}:{1}/{2}:{3}", tCurrentMin, tCurrentSecondStr, tVideoTimeMin, tVideoTimeSecondStr);
    
             txt_time.text =  tTime ;
         }
    
    //播放
    media.OpenVideoFromFile(MediaPlayer.FileLocation.AbsolutePathOrURL, "file:///" + pathStr, true);
    

    先简单写这么多,有空再封装一下

    相关文章

      网友评论

        本文标题:2020-08-12 Unity视频播放器插件 AVPro Vi

        本文链接:https://www.haomeiwen.com/subject/cvfpdktx.html