Unity | Video Player的简单使用方法和原理

这篇具有很好参考价值的文章主要介绍了Unity | Video Player的简单使用方法和原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、 Video Player的使用方法

讲解逻辑为Unity | 基础逻辑_菌菌巧乐兹的博客-CSDN博客

(一)把素材仓库里的视频放进Game界面

1.我们需要在素材仓库中放一个视频(其他文件夹不用管,我只是懒得删了)

Unity | Video Player的简单使用方法和原理

2.在Unity里建一个能接收视频的地方VideoPlayer

Unity | Video Player的简单使用方法和原理

备注:视频和图片是不一样的,图片到这一步组合一下就能用,但是视频不行。因为Unity里不支持直接播放视频,它只能播放动态的Texture。

3.我们来看一下VideoPlayer身上带的组件

Unity | Video Player的简单使用方法和原理

这里因为unity自己也知道,自己没办法直接播放视频,所以它这里让你可以填两个东西,上面是你想播放的视频,下面让你填一个空的texture,之后,它会自己把视频印到Texture上,所以这个组件并不是真的用来播放视频的,而是用来转换的。

4.所以我们需要建一个新的Texture来接收这个视频(在这个界面右键→ Creat→可以找到RenderTexture)

Unity | Video Player的简单使用方法和原理

把这个拖到刚才VideoPlayer上应该在的位置

此时此刻,我们就成功把视频印到这个新建的Texture身上了

5.我们需要建一个播放Texture的东西

unity播放Texture的物体叫RawImage

Unity | Video Player的简单使用方法和原理

 把你的Texture拖进去

Unity | Video Player的简单使用方法和原理

 这样就可以播放视频了

(二)大小控制

因为这个视频是印到Texture身上,所以我们想改视频的大小,就必须改Texture的大小

Unity | Video Player的简单使用方法和原理

 因为这个texture是用RawImage播放的,所以我们也需要改rawImage的大小(这步略)

(三)VideoPlayer组件常用部分

Unity | Video Player的简单使用方法和原理

二 、Video Player的常用方法

控制视频,我们还是通过VideoPlayer控制

所以我们先建一个脚本,写一行代码

public VideoPlayer videoPlayer;

在外面把这个物体拖进来

Unity | Video Player的简单使用方法和原理

 然后就可以简单使用了,下面是常用方法

videoPlayer.Play();  //开始
videoPlayer.Stop();  //停止
videoPlayer.Pause(); //暂停
videoPlayer.Prepare(); // 播放引擎准备(提高开始播放时的速度)
videoPlayer.targetTexture.Release(); //重播时,不出现之前结束时的画面

videoPlayer.started += "方法名"                 //每次播放后立刻启动方法
videoPlayer.loopPointReached += "方法名"        //每次到结尾,都会自己启动这个方法
videoPlayer.time = 5;                           //视频的时间调到第五秒
videoPlayer.frame = 1;                         //视频调到第一帧

//常用案例中细讲
videoPlayer.sendFrameReadyEvents = true;        //启用videoPlayer.frameReady方法
videoPlayer.frameReady += "方法名"               //准备好新的一帧后启动这个方法

 上面有方法名的示例代码:

    videoPlayer.loopPointReached += FalseGameObject;
    void FalseGameObject(VideoPlayer videoPlayer) {
        gameObject.SetActive(false);
    }

方法的括号里必须要带 VideoPlayer哦,后面那个小写的是名字,可以自己起不要紧。

三、常用案例

(一)打开视频后,显示第一帧图片

VideoPlayer中可以选择自动打开并播放视频,和不打开视频。

但是有时候我们有需求,我希望第一帧出现在界面上,用来做封面或者其他。

图例:

Unity | Video Player的简单使用方法和原理

你希望再软件里实现这个状态,展示视频图,但是又不播放。

基本逻辑:

1.我们让它自动打开视频(别忘了自己开这一步)

2.当准备好第一帧的时候,它会自动播放第一帧

3.趁他没反应过来,暂停它

    VideoPlayer vp;
    
    void Start()
    {
        //我一般把这个代码直接挂在需要需要使用的VideoPlayer身上,这样可以直接找到组件
        vp = GetComponent<VideoPlayer>();
        
        //frameReady这个方法是需要打开才能用的
        //这个下面这句话就是我把这个方法启用
        vp.sendFrameReadyEvents = true;
        //当准备好新的一帧后,执行下面方法
        vp.frameReady += PauseVideoUnitOnFirstFrame;
    }
    
    public void PauseVideoUnitOnFirstFrame(VideoPlayer player, long frameIdx)
    {
        //暂停播放
        player.Pause();
        //关掉这个方法,要不然它准备好第二帧又执行,没完没了了
        player.sendFrameReadyEvents = false;
        //同时也去掉这个方法
        player.frameReady -= PauseVideoUnitOnFirstFrame;
    }

四、相关内容

Unity | 如何使用webm透明视频_菌菌巧乐兹的博客-CSDN博客

 五、关于性能优化

1.播放方式优化

正常拿电脑播放视频有两种方式:

假如我有10个视频

1.我开机以后,把10个视频都打开,也不关,就一直都开着,用哪个就播放哪个。

优点:点击播放不会缓存(不会卡),因为都是提前加载好的

缺点:你一两个视频,哪怕三四个视频都还好,你要是十几二十几个视频一起开,电脑就卡死了,所以非常浪费性能。

2.我把10个视频都准备好,但我不打开,我需要哪个再打开哪个。

优点:不浪费性能,哪怕你准备100个视频

缺点:你每次打开了才缓存,所以可能会卡

推荐用第二个。

2.代码注意事项

视频播放完,或者你用了暂停的方法,视频本质上都还是开着的,只是不播放了而已。

所以记得视频播放完以后用stop()方法,把视频关掉,降低内存占用!!!!文章来源地址https://www.toymoban.com/news/detail-452501.html

到了这里,关于Unity | Video Player的简单使用方法和原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity使用webSocket与服务器通信(二)——C#服务器端使用Fleck时的简单服用方法

    C#服务端用到Fleck包,它包含哪些可用的回调函数,有哪些常用的api方法? 演示:服务端收到Unity用户发来的信息 Fleck提供的回调函数有下面几种: 其它常用的api主要有: ping pong的作用是啥? WebSocket为了保持客户端、服务端的实时双向通信,需要确保客户端、服务端之间的

    2024年02月08日
    浏览(33)
  • Unity零基础到进阶 ☀️| 视频播放器 Video Player组件 详解

    🎬 博客主页:

    2024年02月13日
    浏览(37)
  • Unity播放带Alpha通道的视频【WebM+Video Player】(替代播放GIF方案)

    在Unity中播放GIF或者动态效果,可以通过Video Player播放带透明通道的WebM视频来实现。 制作带Alpha的MOV视频 制作带Alpha通道的MOV视频有多重方式,如AE、PR、PS等等,具体制作过程可以自行百度。 将MOV视频格式转化为WebM格式 将WebM格式导入Unity,设置视频播放 完成动态效果展示

    2024年02月13日
    浏览(36)
  • vue3视频播放插件vue3-video-play的具体使用方法

    发布于:12分钟前 之前的vue项目中用到视频播放器,但是UI不是很好看,索性就打算写一个视频播放器插件紧随着vue3的发布,vue3的生态还不是很完整,就索性把这个视频播放器插件修改成了vue3版,最终使用vite2+vue3开发 插件Github地址 vue-video-player 先看一下这个播放器(vue3-vid

    2024年01月18日
    浏览(36)
  • 【Flutter】Flutter 使用 video_player 播放视频

    【Flutter】Flutter 使用 video_player 播放视频 大家好,我是小雨青年,今天我要和大家分享一款非常实用的 Flutter 包—— video_player 。这个包可以让我们在 Flutter 应用中轻松地嵌入和控制视频播放,不论是 Android、iOS 还是 Web 平台。 本文重点介绍: video_player 的基本功能和用法 如

    2024年02月05日
    浏览(37)
  • Vue3之使用vue-video-player

    *vue-video-player 报错The media could not be loaded, either because the server or network failed or because the format is not supported * 原因: 我的src的路径即视频文件存放到本地了,路径直接写 src: \\\'videos/demo.mp4\\\' 而不用 \\\"/videos/demo.mp4\\\" 二、刚开始运行安装命令时,在入口文件引入报错,会显示找不到文

    2024年01月18日
    浏览(35)
  • 已解决 微信小程序uniapp使用video的时候全屏方法@fullscreenchange会执行两次

    原因: fullscreenchange事件会在进入全屏和退出全屏时各触发一次。所以全屏切换期间会触发两次该事件。 解决方案: js Copy code 在监听fullscreenchange事件时,使用变量进行防抖处理。比如设置一个变量来记录上一次的全屏状态,只有当状态真正发生改变时才执行处理逻辑。 使用

    2024年02月07日
    浏览(35)
  • vue 使用vue-video-player加载视频(铺满容器)

    安装 main.js 引入 使用 使视频铺满容器

    2024年02月13日
    浏览(27)
  • vue2 使用 vue-video-player 播放m3u8 流地址视频

    安装插件  : 注意需要引入  videojs-contrib-hls ,否则无法播放hls流文件  main.js 引入 代码内引入: 注意点:    1.type: \\\'application/x-mpegURL\\\' ,否则无法播放流文件  2.aspectRatio: \\\'16:9\\\',  宽高比需要进行设置, 若没有进行设置,会出现黑边过高或者过宽的问题 常用API方法:

    2024年02月07日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包