unity 脚本控制多个视频播放,暂停与切换。_unity 视频切换_dyq7779的博客-程序员信息网

1打开unity,新建一个场景,创建 GameObject-----UI-----RawImage.并且创建三个按钮分别为暂停与播放按钮,上一个,下一个,两个切换按钮。调整好合适的大小和位置。

2.下载好两个以上需要切换的视频,注意修改格式为MP4格式。接下来就导入视频资源。打开unity -----直接将视频拖入Assets界面。

3.编写脚本对视频的播放进行控制。

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

public class Video_Controller : MonoBehaviour {
    private VideoPlayer videoplayer;
    private RawImage rawImage;
    private int currentClipIndex;

    public Text text_playorpause;
    public Button button_playorpause;
    public Button button_pre;
    public Button button_next;
    public VideoClip[] videoClips;//定义了一个数组
	// Use this for initialization
	void Start () {
        videoplayer = this.GetComponent<VideoPlayer>();//获取组件
        rawImage = this.GetComponent<RawImage>();
        currentClipIndex = 0;
        button_playorpause.onClick.AddListener(OnplayorpauseVideo);
        button_pre.onClick.AddListener(OnpreVideo);
        button_next.onClick.AddListener(OnnextVideo);//调用方法
	}
	
	// Update is called once per frame
	void Update () {
        if (videoplayer.texture == null)
        {
            return;
        }
            rawImage.texture = videoplayer.texture;
        
        
		
	}
    private void OnplayorpauseVideo() {
        if (videoplayer.enabled == true)
       {
            if (videoplayer.isPlaying) { 
                videoplayer.Pause();
            text_playorpause.text = "播放";
            Debug.Log("2322");//用于调试脚本不能正常运行

           }
          else if (!videoplayer.isPlaying)
          {
            videoplayer.Play();
            Debug.Log("111");
            text_playorpause.text = "暂停";
          }
        }
    }
    private void OnpreVideo() {
        currentClipIndex -= 1;
        if (currentClipIndex < 0) {
            currentClipIndex = videoClips.Length - 1;
        }
        videoplayer.clip = videoClips[currentClipIndex];
        text_playorpause.text = "暂停";
        }
    private void OnnextVideo()
    {
        currentClipIndex += 1;
        currentClipIndex = currentClipIndex % videoClips.Length;
        videoplayer.clip = videoClips[currentClipIndex];
        text_playorpause.text = "暂停";
    }
    }
    

4.把脚本挂在RawImage上。并给脚本赋予相应的按钮。

 

 

 最后点击运行就可以实现视频的播放暂停,和切换。

5.思路方法总结:

    多个视频播放,要判断视频的播放状态,转化按钮的功能。要实现视频播放和暂停videoplayer.play();和video.pause();的方法;就需要运用到videoplayer.enabled(bool),videoplayer.isplaying或!videoplayer.is playing等的布尔类型来进行判断。

创建一个数组来存储视频。public VideoClip[] video Clips.自定义了暂停与播放,上一个,下一个三个方法。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dyq7779/article/details/90368220

智能推荐

双绞线的制作和直联线交叉线区别_wudong001的博客-程序员信息网

双绞线的制作和直联线交叉线区别 双绞线有两种接法标准:EIA/TIA 568B标准和EIA/TIA 568A标准。 T568A线序 1 2 3 4 5 6 7 8 绿白 绿 橙白 蓝 蓝白 橙 棕白 棕

MyBatis:Mapper 代理实现自定义接口_拾荒追逐者的博客-程序员信息网

目录1、环境搭建2、新建数据表3、创建对应的实体类 User4、创建 MyBatis 的配置文件 config.xml(文件名可自定义)5、自定义接口(Mapper 代理的形式实现)1.创建接口。2.创建 UserRepository.xml,定义接口方法对应的 SQL 语句。statement 标签根据 SQL 执行的业务可选择 insert、delete、update、select。3.在 config.xml 中注册 UserRepository.xml。4.测试1、环境搭建搭建环境,创建 Ma

【Auto.js】使用Pro 8.0 API优化图色或无障碍的耗电问题_requestscreencapture()_红目香薰的博客-程序员信息网

由于Auto.js目前的API都是同步的,要在屏幕中搜索某张图色或者某个控件时,必须无限循环查找,这实际上非常耗电。由于Rhino的限制,Auto.js无法直接提供异步API,这让Auto.js的脚本天生有一些缺陷。为了解决这些问题,Auto.js Pro 8.0.0-3引入了两个新的API,来尽量减少图色模块和控件模块使用时的耗电。图色模块的耗电优化requestScreenCapture(options)options{Object} async{Boolean} 是否以异步事件..

Java虚拟机浅谈——垃圾收集器与内存分配策略_阿里巴巴淘系技术团队官网博客的博客-程序员信息网

在C语言中,有些由内存需要程序员在代码中进行手动回收,但是在Java中,没有这样的声明式操作。有没有人有去想过,Java到底做了什么可以自动进行垃圾回收呢?Java中的垃圾回收,是一点都...

poj 2823 单调队列 入门 代码附注释_粽子猪zZ的博客-程序员信息网

关于单调队列的介绍请移步:http://xuyemin520.is-programmer.com/posts/25964结合poj2823理解比较好:http://poj.org/problem?id=2823代码如下(跑得比较慢):#include const int Maxn=1000000+100; int n,k;int id[Maxn],minn[Maxn],ma

cocos2d-x3.2 在Windows下打包Android平台APK_枫月紫恋的博客-程序员信息网

cocos2d-x3.2 在Windows下打包Android平台APK搭建Android环境需要用到Android SDK、NDK、Ant和JDK;下载Android SDK 下载Android NDk 下载Android JDK 下载Ant 其中JDK是需要安装的,其他的都直接解压即可。将SDK NDK

随便推点

vc6能用的SDK和库列表_tuwen的博客-程序员信息网

vc6能用的SDK和库列表 vc6快10岁了,呵呵~~蛮经典的东西。 以下SDK和库是我自己收集的,绝大部分我都使用过,最重要的是能在VC6下使用。它们之间各自有各自的功能,不需要比较,除非是相同类型的库,例如 XML解析器,我才比较一下,排名也不分先后,并且描述的简略不代表个人的感情色情。^.V,很多库我都喜欢,但我只是简单说两句。例如MFC,STL, ICE等等。希望大家的开发效率能提高不

错误: 找不到或无法加载主类 org.apache.hadoop.hdfs.server.namenode.NameNode 问题解决_Hertz--的博客-程序员信息网

*错误: 找不到或无法加载主类 org.apache.hadoop.hdfs.server.namenode.NameNode 问题解决在hadoop3的初始化时,出现了org.apache.hadoop.hdfs.server.namenode.NameNode这个错误用了很多方法都没有解决,后来发现hadoop-3.1.2.tar.gz是由jdk1.8编的,而我用的jdk1.7,果...

量化双均线策略:(一)通过tushare获取股票数据_风云pgg的博客-程序员信息网

之前几篇通过爬虫与mysql数据库获取到所有股票数据,存在一个比较难处理的问题,就是数据为未复权,无法策略回测。为了获取到已复权数据,也是找了很多接口,最终发现tushare是一个不错的选择,不用存储在本地,程序运行时候保证联网,直接获取数据,最重要的是可以选择前复权或者后复权。以下引用自官方网站http://tushare.org/index.html Tushare是一个免费、开源的p

Xcode 5设置Deployment Target_zimbean的博客-程序员信息网

在Xcode5中,要设置Deployment Target为5.x,6.x, 首先要把工程的architecture修改: 这样才能选择5.x和6.x的系统。

推荐文章

热门文章

相关标签