距离上次写视频播放器已经三个多月了,这段时间码力又有所提升,而且之前写的确实乱,用起来不爽

现在更新个2.0 支持切换视频,进度条,音量条,播放速度

使用方法也异常简单。创建好对应组件托上去就行

using System;
using System.Collections;
using System.Collections.Generic;
using System.Timers;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;
using Timer = System.Threading.Timer;public class Movie : MonoBehaviour
{[Tooltip("在程序开始运行时是否隐藏UI,false为隐藏")] public bool OpenMovie_Awake = true;[Header("Buttons")][Tooltip("播放按钮")] public Button Start;[Tooltip("播放速度+")] public Button SpeedUp;[Tooltip("播放速度-")] public Button SpeedDown;[Tooltip("切换视频+")] public Button MovieUp;[Tooltip("切换视频-")] public Button MovieDown;[Header("UI")][Tooltip("输入的VideoPlayer")] public VideoPlayer VideoPlayers;[Tooltip("播放速度Text")] public Text SpeedShow;[Tooltip("播放时间与总时长Text")] public Text TimeShow;[Header("滑动条。需要在滑动条处增添滑动事件")][Tooltip("音量条")] public Slider Volume;[Tooltip("进度条")] public Slider Times;[Header("视频播放速度")][Range(0f, 1f)]public float PlayBackSpeedChange = 0.5f;//每次调整的播放速度[Range(0f, 5f)]public float PlayBackSpeedMax = 3f;//最高播放速度private bool _volumedraging;private bool _MovieOpend;private bool _Pauseing;public static int PlayingURL;//当前播放的URLpublic static string[] URL = { @"file://D:/Test/Movie01.mov",@"file://D:/Test/Movie02.mov"};//视频集void Awake(){VideoPlayers.GetComponent<VideoPlayer>().url = URL[0];AddListerer();_MovieOpend = true;}public void Update()//播放速度文本这里调节{SpeedShow.text = "播放速度 X" + VideoPlayers.playbackSpeed.ToString("#0.0");TimeShow.text = ($"{(int)VideoPlayers.time / 60}:{(VideoPlayers.time % 60).ToString("00")}/{(int)VideoPlayers.length / 60}:{(VideoPlayers.length % 60).ToString("00")}");if (VideoPlayers.frameRate / VideoPlayers.frameCount > 0)//进度条{if (!Input.GetMouseButton(0) || _volumedraging)Times.value = (float)VideoPlayers.time / (float)VideoPlayers.length;}if (Input.GetMouseButtonUp(0)) _volumedraging = false;//防止滑动音量条锁进度条}/// <summary>/// 进度条/// </summary>public void Ondrag(){if (Input.GetMouseButton(0) && !_volumedraging)VideoPlayers.time = Times.value * (float)VideoPlayers.length;}/// <summary>/// 音量/// </summary>public void VolumeDrag(){_volumedraging = true;VideoPlayers.SetDirectAudioVolume(0, Volume.value);}/// <summary>/// 为所有按钮添加监听器/// </summary>void AddListerer(){Start.onClick.AddListener(() =>//播放{if (_Pauseing){VideoPlayers.playbackSpeed = 1f;Start.gameObject.transform.Find("Text").GetComponent<Text>().text = "暂停";_Pauseing = false;}else{VideoPlayers.playbackSpeed = 0f;Start.gameObject.transform.Find("Text").GetComponent<Text>().text = "播放";_Pauseing = true;}});SpeedUp.onClick.AddListener(() =>{if (VideoPlayers.playbackSpeed < PlayBackSpeedMax)VideoPlayers.playbackSpeed += PlayBackSpeedChange;});SpeedDown.onClick.AddListener(() =>{if (VideoPlayers.playbackSpeed > 0f)VideoPlayers.playbackSpeed -= PlayBackSpeedChange;});MovieUp.onClick.AddListener(()=>PlayingURL=URL.Length>PlayingURL+1? PlayingURL+1:0);MovieDown.onClick.AddListener(()=> PlayingURL=PlayingURL>0? PlayingURL-1: URL.Length-1);}public void ResetMovie(){VideoPlayers.enabled = false;Timer timer = new Timer(delegate(object state) { VideoPlayers.enabled=true;}, null, 10, 0);}}

效果图

自用工具 猴子都会用的unity视频播放器相关推荐

  1. 关于Unity视频播放器插件 AVPro Video(二)3D物体上视频播放

    1.官网下载该插件或者我分享的链接: 链接:https://pan.baidu.com/s/1boGeJ8r 密码:mvbf 2.新建项目创建主要控制物体 3.创建对于视频播放在3D物体身上的材质 4 ...

  2. 干货分享:高效办公工具【视频转文字、视频播放器、B站视频下载软件、贴图、截图提取文字并翻译、笔记记录软件、任务管理网站】

    高效办公工具分享--视频转文字.视频播放器.B站视频下载软件.贴图.截图提取文字并翻译.笔记记录软件.任务管理网站 一 前言 二.下载链接及效果 1.视频自动转文字-飞书妙记(目前免费使用!!) 2. ...

  3. 基于VLC的Unity视频播放器(二)

    using Net.Media; using System; using System.IO; using System.Runtime.InteropServices; using UnityEng ...

  4. 在Vue中自制视频播放器(上)

    在Vue中自制视频播放器(上) 前言 初始化组件 开始/暂停按钮 停止按钮 静音按钮 视频播放时间 全屏按钮 源代码 前言 平时大家在浏览视频网站时,会发现各大视频网站都有自己的视频控制组件,虽然浏览 ...

  5. 盘点B站up主常用的免费录屏软件,自用工具分享

    盘点B站up主常用的免费录屏软件,自用工具分享! 今天分享 4 款超好用的免费录屏软件,能够满足大部分同学录制教学视频.游戏视频.网络课程等录制场景的需求. 而且,这 4 款录屏软件还是主播.自媒体达 ...

  6. Unity 视频播放

    Unity 视频播放 前言 在Unity引擎做视频播放的方式有很多种,这里介绍两种.一种是使用RawImage组件的纹理进行视频播放,将视频每一帧的画面复制在RawImage的纹理贴图中,实现视频的播 ...

  7. monkey命令_随机测试工具猴子monkey

    随机测试工具猴子-monkey 一,什么是monkey? monkey是Android中的一个命令行工具,可以运行在模拟器和实际设备里, 它通过向系统发送伪随机的用户事件流(比如按键输入,触摸屏输入, ...

  8. 记录一款Unity VR视频播放器插件的开发

    效果图 先上一个效果图: 背景 公司最近在做VR直播平台,VR开发我们用到了Unity,而在Unity中播放视频就需要一款视频插件,我们调研了几个视频插件,记录两个,如下: Unity视频插件调研 网 ...

  9. Unity实现类似于苹果视频播放器视频播放进度条及声音进度条拖拽功能

    Unity实现类似于苹果视频播放器视频播放进度条及声音进度条拖拽功能 前言 我在之前的博客里介绍过关于VideoPlayer的简单使用流程,之前一直想研究下videoPlayer中的使用进度条控制视频 ...

  10. (原创)视频播放器的手势控制工具类

    最近在做一个视频播放器 现在市场上,一个比较完善的视频播放器 大概具有以下功能: 快进.快退.声音.亮度控制 这一次就根据这几个基础的功能 通过系统的手势控制类GestureDetector来完成 做 ...

最新文章

  1. 工业互联网的十大关键传感器
  2. 20个非常有用的PHP类库
  3. 释疑のABAP输入框字符自动变成大写问题
  4. 2014年值得关注的10个开源项目 上
  5. POJ1062 昂贵的聘礼(最短路径)
  6. java day55【 Mybatis 连接池与事务深入 、 Mybatis 的动态 SQL 语句、 Mybatis 多表查询之一对多 、 Mybatis 多表查询之多对多】...
  7. PHP 根据URL将图片下载到本地(curl爬取)
  8. 有消息推送服务器的手机厂家,又一家手机厂商完成统一推送服务适配
  9. USB的SIE串行接口引擎
  10. CSS Sprite(CSS雪碧图)
  11. redis分布式锁实现(以抢红包为例)
  12. google talk
  13. Swipe轮播插件的使用
  14. 中医卫统直报、重点专科、绩效考核病案首页字段汇总-标出差异
  15. 最佳实践 | 通过用户画像工具确定目标用户
  16. NOIP-模拟试题之--猴子摘桃
  17. 甲乙分别自A,B两地同时相向步行,2小时后中途相遇,甲乙步行速度都提高了1千米/时,当甲到达B地后立刻按原路向A地返行,当乙到达A地后也立刻按原路向B地返行,甲乙两人在第一次相遇后3小时36分
  18. Android本地备份功能禁用
  19. 全渠道营销+线上线下结合新零售数字门店saas系统
  20. 联想拯救者R720加装固态硬盘过程中遇到的小问题

热门文章

  1. 七月观荷 - 江湖一剑客
  2. 戒指戴在不同的手指上代表的意思
  3. 植物大战僵尸:你还在因为玩不过僵尸而气到吃电脑吗?不要怕,教你修改用户存档,逆天翻盘,吊打僵尸**
  4. 前端实现炫酷动效_7款纯CSS3实现的炫酷动画应用
  5. 抖音壁纸小程序怎么做?教你开通和对接流量主拥有自己的小程序
  6. Python微博项目
  7. 怎么把外部参照合并到图纸_为什么CAD图纸作为外部参照插入时位置变了?
  8. c# 的取负数_在C#中将正数转换为负数
  9. wav pcm格式文件解析
  10. BSS,ESS,SSID,BSSID,ESSID,VAP概念详解