Unity实现视频播放功能,制作视频播放器

Unity中怎么播放视频 一.首先在场景中新建UI中的Raw Image 可以按住Alt再点击下图红色箭头所示将Raw Image铺满游戏全屏(也可以自己调整大小) 二.给Raw Image添加Video Player组件 三.在Assets或者自己想要的文件夹中创建Render Texture 四.将准备好的视频(这里用到的视频格式是mp4)拖入项目中并做如下修改 这里我把新建的Render Texture命名为2,拖入的视频也命名为2(随便命的,不要在意) 这里我们看到这个Render Te... 阅读详情

目前先发布相关脚本代码,后续会对内容进行补充

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;

namespace FrameWork
{
    public interface IVideo
    {
        VideoPlayer GetVideoPlayer();

        RawImage GetVideoImage();

        void OnPlayVideo();

        void OnPlayVideo(int index);

        void OnPlayVideo(string url);

        void OnPauseVideo();

        void OnStopVideo();

        void AddVideoUrl(string url);

        void AddVideoUrls(string[] url);

        void RemoveAllUrls();

        void RemoveUrl(int index);
    }

}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace FrameWork
{
    public class VideoManager : FrameworkComponent
    {
        public override void Init()
        {
            sceneVideos = new Dictionary<string, IVideo>();
        }
        private Dictionary<string, IVideo> sceneVideos;
        public void RegistMySelf_Video(string name, IVideo video)
        {
            if (sceneVideos == null)
                return;
            if (!sceneVideos.ContainsKey(name))
            {
                sceneVideos.Add(name, video);
            }
            else
            {
                Debug.Log("已添加video:" + name + " ,请检查是否重名");
            }
        }
        public void UnRegistMySelf_Video(string name)
        {
            if (sceneVideos == null)
                return;
            if (sceneVideos.ContainsKey(name))
            {
                sceneVideos.Remove(name);
            }
            else
            {
                Debug.Log("未找到video:" + name);
            }
        }
        public IVideo GetVideoComponent(string name)
        {
            if (sceneVideos.ContainsKey(name))
            {
                return sceneVideos[name];
            }
            Debug.Log("未找到IVideo:" + name);
            return null;
        }
    }
}

接下来是核心代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Video;
using UnityEngine.UI;
namespace FrameWork
{
    [RequireComponent(typeof(RawImage))]
    public class VideoComponent : MonoBehaviour, IVideo
    {
        #region 内部变量
        private VideoPlayer vPlayer//
            ;
        private AudioSource source;//

        private RawImage videoImage;//

        private bool playOnPrepareCompleted = false;

        private string videoUrlDefault;

        private bool isInDrag = false;
        #endregion

        #region SerializeField
        [SerializeField]
        private List<string> videoUrlPool;

        public bool playOnAwake = false;

        public bool prepareOnAwake = true;


        public bool isLooping = false;

        public bool waitForFirstFrame = false;

        public bool isStreamingAssetsPath = false;

        public Graphic loadingUI;

        public Graphic coverUI;

        public Button playBtn;

        public Button stopBtn;

        public Button pauseBtn;

        public Slider sliderVideo;

        public Text text_Time;

        public Slider 
Unity中两种播放器 Unity中两种播放器,动画播放器,视频播放器 阅读详情

相关推荐

Unity播放视频(一) VideoPlayer的使用

Unity播放视频,VideoPlayer组件的使用

wenkang0316的博客 2420

Unity VideoPlayer视频播放器

挺久没有写博客了,这是2020年的第一篇博客,先说说写这篇博客的原因吧。 去年下半年负责一个新项目,项目里面有需要播放大量视频的需求,由于Demo时间比较紧急就没有下功夫去做这块。 问题1:改变视频进度时进度条出现回滚。 问题2:改变视频进度时出现音画不一致问题,音频较视频有延迟。 问题3:开发周期小,时间紧急,代码不规范。 马上就要春节放假了,赶在了放假之前把关卡都完成了,今天有空就重...

XM肖牧 8548

Unity 视频播放器,基于VideoPlayer,实现滑动进度条,显示视频时长,全屏显示,音量调节

unity播放视频的方式有很多种,但即轻量又好用的,还是unity自带的VideoPlayer,但没有视频基础操作的UI组件,本篇带大家对视频的播放,以及UI组件的实现Unity常用视频格式:mov、mpg、mpeg、mp4、avi、asf1、Hierarchy中新建VideoPlayer组件2、Hierarchy中创建RAWImage3、在Assets中新建RenderTexture纹理4、设置好视频的分辨率5、将建好的纹理拖到第2步中新建的RawImage上。

qq_33161296的博客 9477

Unity视频播放器插件AVProVideo的使用

AVProVideo是一个非常好用的视频播放器插件,支持windows、ios、android、webgl等等平台,支持4k视频播放,并且非常节省性能,当你的项目需要播放分辨率非常大的视频,但由于机器配置问题导致使用unity自带的播放组件播放非常卡的时候,这时候你就可以考虑考虑使用这个插件了。 下面我只是简单说明一下这个插件的简单使用,具体的使用你可以通过查看自带的demo场景以及说明文档pdf来学习掌握。第一步还是先导入插件,插件资源的链接我待会会放到文章最后,有需要的小伙伴可以去自行下载。插件导入后就

weixin_43956644的博客 2万+

基于FFmpeg的Unity视频播放器(一)

基于FFmpeg的Unity视频播放器

不忘初心 方得始终 8662

Unity零基础到进阶 ☀️| 视频播放器 Video Player组件 详解

Video Player 组件是Unity提供播放视频的组件,它可以让我们在Unity中播放视频,并对视频进行一些特殊处理,如播放速度、渲染模式等等,使用该组件基本上可以完成我们在Unity中播放视频的大部分需求。

努力前行,总会成为自己心中的那道光 1万+

【Unity】代码控制视频的播放(视频播放器-更新)

视频播放器使用代码控制

好吃的和好看的都需要用实力来争取 3076

Unity视频播放器(基础版)

功能包含有开始播放,暂停播放,重播,音量调节,时间显示,面板关闭等功能

别再只看成交量了!用通达信这个VOL监测公式,一眼识别主力吸筹与出货信号

本文详细介绍了通达信VOL监测公式的实战应用,通过彩色量柱和换手率分层技术,帮助投资者识别主力吸筹与出货信号。该公式结合动态量能标准化和多周期均线组合,提供可视化主力行为图谱,提升交易决策的准确性。

weixin_28693447的博客 656

Mongodb操作与Java(四)MongoTemplate的使用

MongoTemplate的使用

A乐神的博客 3437

VPI与Matlab协同仿真:相干光通信接收端DSP算法全解析

本文详细解析了如何利用VPI与Matlab协同仿真,构建完整的相干光通信接收端DSP算法处理闭环。重点介绍了从VPI导出数据后,在Matlab中实现时钟恢复、偏振解复用和载波相位估计等核心算法的步骤与原理,并阐述了如何通过误码率计算完成仿真验证,为相干光通信系统算法研究与验证提供了高效实用的方法。

ll5678的博客 608

【unity游戏开发之InputSystem——01】通过写代码监听InputSystem输入(基于unity6开发介绍)

通过写代码监听InputSystem输入(基于unity6开发介绍)

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4889

小目标检测难题终结:YOLOv11 + 注意力机制,精度直接拉满

如果你在实操中遇到精度提升不明显或速度下降过多的问题,不妨尝试调整注意力模块的类型(如替换为CA)或插入层级,或针对性优化小目标的数据集增强策略。记住,小目标检测的核心是“特征强化与空间定位”,只要结合业务场景灵活调整注意力模块的组合,你也能让YOLOv11在小目标识别任务中脱颖而出。接下来,我们从模块选型到代码落地,一步步带你打造“小目标检测专精版”YOLOv11,真正帮你解决工业场景中(如安防、质检)的小目标识别痛点。在城市安防场景中,改进后的YOLOv11对远处行人、车辆(小目标)的识别准确率提升。

m0_64661770的博客 199

基于RK3588边缘计算平台的人数统计系统设计与实现

针对人数统计场景优化的YOLOv5模型完整的模型转换和部署流程高效的嵌入式推理优化方案低成本、低功耗的部署方案实时性强,满足工业应用需求可扩展性好,适配多种应用场景引入注意力机制,提高小目标检测能力结合多模态信息,增强系统鲁棒性开发可视化管理平台,提升用户体验随着边缘计算和AIoT技术的快速发展,基于深度学习的智能视觉系统必将在更多领域发挥重要作用。本项目为相关应用的开发和部署提供了有价值的参考,为推动人工智能技术的产业化应用做出了积极贡献。

LXY_LOVE36的博客 142

Kappa函数:测量一致性并计算置信区间的R语言包

Kappa函数是一种常用的统计量,用于衡量两个评估者之间的一致性。在R语言中,有一个名为"vcd"的包提供了计算Kappa函数以及相应的置信区间的功能。本文将介绍如何使用"vcd"包来计算Kappa函数的值,并进一步计算置信区间。Kappa函数的值介于-1和1之间,值越接近1表示评估者之间的一致性越高,值越接近-1表示评估者之间的一致性越低,值接近0表示评估者之间的一致性接近于随机。通过以上步骤,我们成功地使用R语言中的"vcd"包计算了Kappa函数的值和置信区间。接下来,我们可以使用"vcd"包中的。

2301_79331230的博客 1874

【WRF模拟】保存wrf输出文件到指定目录+仅输出指定空间域/变量文件

修改wrf命令以更改指定输出文件目录等

WW、forever的博客 543

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 关于我在Unity修改部分字母文本下标
WSFTSZ
博客等级 码龄6年 18粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值