自用工具 猴子都会用的unity视频播放器
距离上次写视频播放器已经三个多月了,这段时间码力又有所提升,而且之前写的确实乱,用起来不爽
现在更新个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视频播放器相关推荐
- 关于Unity视频播放器插件 AVPro Video(二)3D物体上视频播放
1.官网下载该插件或者我分享的链接: 链接:https://pan.baidu.com/s/1boGeJ8r 密码:mvbf 2.新建项目创建主要控制物体 3.创建对于视频播放在3D物体身上的材质 4 ...
- 干货分享:高效办公工具【视频转文字、视频播放器、B站视频下载软件、贴图、截图提取文字并翻译、笔记记录软件、任务管理网站】
高效办公工具分享--视频转文字.视频播放器.B站视频下载软件.贴图.截图提取文字并翻译.笔记记录软件.任务管理网站 一 前言 二.下载链接及效果 1.视频自动转文字-飞书妙记(目前免费使用!!) 2. ...
- 基于VLC的Unity视频播放器(二)
using Net.Media; using System; using System.IO; using System.Runtime.InteropServices; using UnityEng ...
- 在Vue中自制视频播放器(上)
在Vue中自制视频播放器(上) 前言 初始化组件 开始/暂停按钮 停止按钮 静音按钮 视频播放时间 全屏按钮 源代码 前言 平时大家在浏览视频网站时,会发现各大视频网站都有自己的视频控制组件,虽然浏览 ...
- 盘点B站up主常用的免费录屏软件,自用工具分享
盘点B站up主常用的免费录屏软件,自用工具分享! 今天分享 4 款超好用的免费录屏软件,能够满足大部分同学录制教学视频.游戏视频.网络课程等录制场景的需求. 而且,这 4 款录屏软件还是主播.自媒体达 ...
- Unity 视频播放
Unity 视频播放 前言 在Unity引擎做视频播放的方式有很多种,这里介绍两种.一种是使用RawImage组件的纹理进行视频播放,将视频每一帧的画面复制在RawImage的纹理贴图中,实现视频的播 ...
- monkey命令_随机测试工具猴子monkey
随机测试工具猴子-monkey 一,什么是monkey? monkey是Android中的一个命令行工具,可以运行在模拟器和实际设备里, 它通过向系统发送伪随机的用户事件流(比如按键输入,触摸屏输入, ...
- 记录一款Unity VR视频播放器插件的开发
效果图 先上一个效果图: 背景 公司最近在做VR直播平台,VR开发我们用到了Unity,而在Unity中播放视频就需要一款视频插件,我们调研了几个视频插件,记录两个,如下: Unity视频插件调研 网 ...
- Unity实现类似于苹果视频播放器视频播放进度条及声音进度条拖拽功能
Unity实现类似于苹果视频播放器视频播放进度条及声音进度条拖拽功能 前言 我在之前的博客里介绍过关于VideoPlayer的简单使用流程,之前一直想研究下videoPlayer中的使用进度条控制视频 ...
- (原创)视频播放器的手势控制工具类
最近在做一个视频播放器 现在市场上,一个比较完善的视频播放器 大概具有以下功能: 快进.快退.声音.亮度控制 这一次就根据这几个基础的功能 通过系统的手势控制类GestureDetector来完成 做 ...
最新文章
- 工业互联网的十大关键传感器
- 20个非常有用的PHP类库
- 释疑のABAP输入框字符自动变成大写问题
- 2014年值得关注的10个开源项目 上
- POJ1062 昂贵的聘礼(最短路径)
- java day55【 Mybatis 连接池与事务深入 、 Mybatis 的动态 SQL 语句、 Mybatis 多表查询之一对多 、 Mybatis 多表查询之多对多】...
- PHP 根据URL将图片下载到本地(curl爬取)
- 有消息推送服务器的手机厂家,又一家手机厂商完成统一推送服务适配
- USB的SIE串行接口引擎
- CSS Sprite(CSS雪碧图)
- redis分布式锁实现(以抢红包为例)
- google talk
- Swipe轮播插件的使用
- 中医卫统直报、重点专科、绩效考核病案首页字段汇总-标出差异
- 最佳实践 | 通过用户画像工具确定目标用户
- NOIP-模拟试题之--猴子摘桃
- 甲乙分别自A,B两地同时相向步行,2小时后中途相遇,甲乙步行速度都提高了1千米/时,当甲到达B地后立刻按原路向A地返行,当乙到达A地后也立刻按原路向B地返行,甲乙两人在第一次相遇后3小时36分
- Android本地备份功能禁用
- 全渠道营销+线上线下结合新零售数字门店saas系统
- 联想拯救者R720加装固态硬盘过程中遇到的小问题