【VideoPlayer】视频效果

声音没录制进去,全屏那块没全录进去;

在一个空对象上挂在如下组件;AudioSource挂上保持默认就好;

using System;
using System.Collections;
using System.Collections.Generic;
using UI;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;[RequireComponent(typeof(VideoPlayer))]
public class ToPlayVideo : MonoBehaviour
{[Header("VideoPlayer组件")]public VideoPlayer videoPlayer;[Header("开始播放开关")]public Toggle startToggle;[Header("暂停播放开关")]public Toggle pauseToggle;[Header("全屏按钮")]public Button fullScreenButton;private bool isFullScreen; //判断视频是否全屏private Vector3 initPos; //视频播放框初始坐标private RectTransform rt ;private void Awake(){//videoPlayer = GetComponent<VideoPlayer>();rt = GetComponent<RectTransform>();startToggle.onValueChanged.AddListener((isOn) =>{if (videoPlayer != null){Play();}});pauseToggle.onValueChanged.AddListener((isOn) =>{if (videoPlayer != null){Pause();}});fullScreenButton.onClick.AddListener(() =>{if (videoPlayer != null){FullScreen();}});}private void Start(){initPos = transform.localPosition;}private void Update(){//退出全屏if (isFullScreen && Input.GetKey(KeyCode.Escape)){transform.localPosition = initPos;//视屏播放框框大小自定义rt.sizeDelta = new Vector2(1670,1060);isFullScreen = false;}}/// <summary>/// 暂停/// </summary>public void Pause(){videoPlayer.Pause();}/// <summary>/// 停止/// </summary>public void Stop(){videoPlayer.Stop();}/// <summary>/// 播放/// </summary>public void Play(){videoPlayer.Play();}/// <summary>/// 全屏/// </summary>void FullScreen(){// rt.sizeDelta = new Vector2(Screen.width,Screen.height);rt.sizeDelta = new Vector2(2052,1556); //视频播放全屏尺寸根据实际情况调整rt.localPosition = new Vector3(4,1); //视频播放框框位置根据实际情况调整isFullScreen = true;}/// <summary>/// 获取视频时长/// </summary>/// <returns></returns>public float GetTime(){return (videoPlayer.frameCount / videoPlayer.frameRate );}/// <summary>/// 设置播放时间点/// </summary>/// <param name="time"></param>public void SetTime(float time){videoPlayer.frame = (long)(time * videoPlayer.frameRate);Play();}}

创建一个Slider组件;通过Slider来控制视频播放位置;

using System;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;namespace UI
{//挂在Slider组件上public class SliderEvent : MonoBehaviour,IEndDragHandler,IBeginDragHandler{   [Header("视频播放脚本")]public ToPlayVideo toPlayVideo;private Slider _slider;private float _videoTime; //视频时长private bool isDrag;private void Awake(){_slider = GetComponent<Slider>();_videoTime = toPlayVideo.GetTime();}private void Start(){//将滚动条的最大值设置成为视频时长;(也可以保持百分比的方式)_slider.maxValue = _videoTime;}// Update is called once per framevoid Update(){if (!isDrag && toPlayVideo.videoPlayer.isPlaying){//滚动条跟着视频播放滑动;(保持百分比方式就不要 *_videoTime)_slider.value = (float.Parse(toPlayVideo.videoPlayer.frame.ToString() ) / float.Parse(toPlayVideo.videoPlayer.frameCount.ToString()))*_videoTime;}}public void OnEndDrag(PointerEventData eventData){isDrag = false;toPlayVideo.SetTime(_slider.value);}public void OnBeginDrag(PointerEventData eventData){isDrag = true;toPlayVideo.Pause();}}
}

Unity中使用VideoPlayer控制播放暂停进度条相关推荐

  1. QT5.9实现一个视频播放器播放 暂停进度条

    参考博主 1https://blog.csdn.net/liji_digital/article/details/83691035 参考博主2https://blog.csdn.net/qq_4107 ...

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

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

  3. Vue2.0+SVG实现音乐播放圆形进度条组件,传入实时百分比实现圆圈进度动画效果

    vue2.0+SVG实现音乐播放圆形进度条组件,传入实时百分比实现圆圈进度动画效果 需求分析: 类似于大多数音乐播放器中等mini播放器控制按钮,显示播放进度,实时更新进度. progress-cir ...

  4. 多条语音消息合成一整条连续播放与进度条功能技术点!

    多条语音汇成一整条开发 最近在做一个多条语音合成一整条语音并且结合进度条可以快进或者后退功能,功能不复杂,但是所遇到的坑不少,所以我就想着把我遇到的坑写下来,希望以后有用到的小伙伴们可以少走点弯路: ...

  5. php怎样查看视频播放的进度条,H5中视频与音频标签和进度条如何使用

    这次给大家带来H5中视频与音频标签和进度条如何使用,H5中视频与音频标签和进度条使用的注意事项有哪些,下面就是实战案例,一起来看一下. 最近项目中使用Html5的video和audio标签来在线播放视 ...

  6. 计算机休眠不播放音乐,电脑没有声音了播放音乐进度条还不会动是怎么回事求...

    电脑没有声音了播放音乐进度条还不会动是怎么回事求以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 电脑没有声音了播放音乐进 ...

  7. ajax加载进度百分比,在ajax中显示加载百分比的进度条,php

    您好我正在使用ajax加载数据库内容.我想显示加载或图像的总百分比.在ajax中显示加载百分比的进度条,php 这是我的脚本 function name1(str) { if (str.length= ...

  8. android下载通知栏,Android开发中实现下载文件通知栏显示进度条

    android开发中实现下载文件通知栏显示进度条. 1.使用asynctask异步任务实现,调用publishprogress()方法刷新进度来实现(已优化) public class myasync ...

  9. Unity 中 用LineRender来实现画多条直线的方法

    Unity 中 用LineRender来实现画多条直线的方法: 直接上代码: public class Testline : MonoBehaviour { //LineRenderer privat ...

  10. Android使用高德地图实现轨迹播放和进度条控制

    轨迹播放 首先上视频效果(本来是要弄成GIF动态图的,但是手机将图片用微信发到电脑,电脑修改后缀名后还是不能展示) 在实现前需要先初始化和定义一些变量(大佬可以直接跳过),坐标列表和起点以及终点坐标根 ...

最新文章

  1. 淘宝网7年变化图--建议非美工UED人员也看看
  2. Spring Boot 结合 Redis 缓存
  3. linux tunnel 与cisco 三层交换机的tunnel互联
  4. 精选Spring Boot三十五道必知必会知识点!
  5. java 反射模式_java 设计模式——反射机制的应用
  6. python合并excel文件关键字_使用 Python 合并多个格式一致的 Excel 文件,Excel 表格...
  7. 在Flash中调用xml文档
  8. 数百万台车联网设备同时在线 0 故障,中瑞集团的云原生探索之路
  9. C语言实现面向接口编程
  10. 现代程序设计 作业 第1次
  11. linux批量筛选序列变异位点,使用bedtools获取指定坐标上下游的序列
  12. http 直接显示目录下文件_Win10支持直接访问Linux子系统文件:你的下一台Linux何必是Linux
  13. Mac上编译C++报错
  14. java从入门到精通视频教程-[网盘下载]在线观看
  15. android 获取软件签名,获取Android应用签名
  16. 车金融|合同中心系统的前世今生
  17. 代码审计jizhiCMS 后台getshell
  18. 51单片机入门——单片机最小系统
  19. Python 元组大全
  20. 手把手教你编译Flutter engine

热门文章

  1. SQL数据分析之数据提取、数据查询、数据清洗【MySQL速查】
  2. 使用C#调用P6 Primavera WebService(自建服务IntegrationAPI)
  3. 掘金小册前端性能优化原理与实践读后总结
  4. 索尼Fn键-亮度调节快捷键驱动
  5. 机器学习 | 数学基础
  6. 【机器学习数学基础】Mathematics for Machine Learning 梳理+习题答案
  7. 800道Python习题,花了一个月终于整理出来了,挑战一下自己能做对多少题
  8. idea创建j2ee_IntelliJ IDEA 2018 Community(社区版)创建J2EE项目+Tomcat9部署
  9. c语言 16进制编辑器,十六进制编辑器(010 Editor 32位)
  10. 海康威视 - 萤石云开放平台 js 版