Unity3D VideoPlayer播放视频和音频
Unity3D VideoPlayer播放视频和音频
今天来记录一下用Unity自带的VideoPlayer播放视频和音频。
首先准备一个带音频的视频文件,导入到工程中。Windows支持的视频格式有:.mp4,.mov,.mpg,.mpeg,.asf,.avi,.dv,.mv4,.ogv,.vp8,.webm,.wmv等。
视频的转码根据自己需求选择,如果不转码,视频文件将按原样使用,可以节省时间,避免相关的质量损失,但需自己验证该视频与目标平台的是否兼容。
新建一个Canvas,在Canvas下新建一个RawImage控件,设置好Rawimage的大小,好与视频的尺寸匹配。点击RawImage下的Add Component,添加VideoPlayer组件和Audio Source组件。在Project工程中,单击右键——> create ——> Render Texture,命名为Video_texture,根据视频尺寸,设置好Video_texture的尺寸(最好与RawImage的尺寸一致)。
把Video_texture分别拖进RawImage和VideoPlayer的相应位置 。把视频拖入VideoPlayer的Video Clip栏(这里Source选用Video Clip,如果选用UR,则需把该视频的路径填入即可)。接着把Audio Souce拖入VideoPlayer的Audio Souce中。
代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;public class VideoPlay : MonoBehaviour {public VideoPlayer videoPlayer;private AudioSource audioSource;public Transform Buttons;private RawImage rawImage;void Start(){rawImage = videoPlayer.gameObject.GetComponent<RawImage>();audioSource = videoPlayer.GetComponent<AudioSource>();StartCoroutine(PlayVideo());foreach(Transform t in Buttons){t.GetComponent<Button>().onClick.AddListener(delegate { PlayEvent(t.name); });}}void Update(){//键盘向上箭头加音量if (Input.GetKeyDown(KeyCode.UpArrow)){if (audioSource.volume < 1)audioSource.volume += 0.1f;}//键盘向下箭头减音量else if (Input.GetKeyDown(KeyCode.DownArrow)){if (audioSource.volume > 0)audioSource.volume -= 0.1f;}//按ESC退出软件if (Input.GetKeyDown(KeyCode.Escape))Application.Quit();}IEnumerator PlayVideo(){//当唤醒该对象时,视频不会自动播放videoPlayer.playOnAwake = false;//false,不循环播放videoPlayer.isLooping = false;//视频每次到达结尾值,调用委托(监听视频播放完成)//videoPlayer.loopPointReached += ReachedLoop;//播放引擎准备(提高开始播放时的速度)videoPlayer.Prepare();//当再次显示播放时,将上次视频的最后一帧销毁videoPlayer.targetTexture.Release();yield return null;}public void PlayEvent(string name){switch (name){case "play"://获得视频的音频videoPlayer.SetTargetAudioSource(0, this.GetComponent<AudioSource>());//播放视频videoPlayer.Play();break;case "pause":videoPlayer.Pause();break;case "stop":videoPlayer.Stop();break;case "rePlay":videoPlayer.frame = 0;videoPlayer.Play();break;}}
}
把代码挂在Canvas上,拖入RawImage跟Buttons,运行即可
动图如下:
Unity3D VideoPlayer播放视频和音频相关推荐
- 安装了Phonon,却不能播放视频和音频
安装了Phonon,却不能播放视频和音频,同时提示警告: WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend pl ...
- 使用HTML和css播放视频和音频
使用HTML和css播放视频和音频 使用video播放视频 使用audio播放音频 使用video播放视频 video属性可以给网页加载视频,详细属性见下图 不是所有格式的视频都可以被浏览器支持,比如 ...
- 【Unity3d】在Unity3d中播放视频:AVPro Video的使用
1.插件介绍 之前讲到使用Unity的MoveTexture和Image来实现简单的播放器,虽然可以实现简单的视频播放功能,但是对于商业化或者移动端的项目来说远远不够.RenderHeads提供了一款 ...
- 解决【unity3d】播放视频的两种操作方式
想通过Unity3D播放游戏视频主要有两种方式.第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上.第二种是在GUI层面上播放视频.播放视频其实和贴图非常 ...
- U3D VideoPlayer播放视频和坑点
最近做的游戏里,需要先播放一段几秒钟的工作室LOGO片头,拿到的视频是AVI格式,以前没在U3D里用到过视频,本以为很简单,没想到都2022年了,U3D播放视频还这么烂... 插件最好用的是AVPro ...
- android点击视频使用固定应用打开,Android 使用intent打开手机自带应用播放视频,音频,文档,还有打开应用市场...
1 打开手机上的视频播放器播放视频String url = "http://192.168.0.1/1.mp4" Intent intent = new Intent(); int ...
- Qt的QMediaPlayer播放视频和音频
这里只是做简单的测试,功能简单,代码如下: QVBoxLayout *layout = new QVBoxLayout; QVideoWidget* vw = new QVideoWidget(); ...
- Unity3d Windows播放视频(视频流)功能组/插件支持对比
前言 目前作者常开发的系统就是智能工厂.园区,数字孪生系统等,经常用到播放各种视频的功能,而且甲方经常有部署好的各种监控系统,如果接入到系统就涉及到各种视频流的格式rtsp.rtmp.m3u8等.所以 ...
- 播放视频和音频文件java
import javazoom.jl.player.Player; import org.junit.jupiter.api.Test; import java.io.BufferedInputStr ...
最新文章
- pip安装更新、第三方库对应的python解释器版本、pip安装第三方库,压缩包离线安装,pycharm快捷安装及pycharm中terminal的使用,timeout超时报错
- 告别Kafka Stream,让轻量级流处理更加简单
- scholar communication
- 面试必问,如何控制多个线程的执行顺序
- 复现HITB PHP lover代码审计
- Tomcat集群快速入门:Nginx+Tomcat搭建集群
- 【渝粤教育】国家开放大学2019年春季 2767养猪技术 参考试题
- hashmap 扩容是元素还是数组_曹工说JDK源码(1)--ConcurrentHashMap,扩容前大家同在一个哈希桶,为啥扩容后,你去新数组的高位,我只能去低位?...
- J2EE学习辅助工具资料列表及下载3(初学积累中)
- 卸载oracle——详细版
- Greenplum创建存储过程
- Mysql 执行顺序
- 想自学python看哪位的视频比较好-python自学视频看这个就对了
- Linux sys_call_table变动检测
- 【更新】Essential Studio for Xamarin更新至2018 v4(三)
- numpy系列之拷贝和视图
- 苹果个人开发者账号如何升级成公司账号
- VS2019的动态库dll在lua中调用及lua.exe和luac.exe的使用方法
- 绕过chrome的弹窗拦截机制
- 2022苹果ios个人开发中注册遇到的问题