Unity3D播放视频
http://blog.csdn.net/awnuxcvbn/article/details/17618919
点击这里下载视频转换器,该转换器会把其他格式转化为ogv格式,直接被unity识别,不需要安装quicktime不需要重启,更为重要的是比把mov导入unity的要清晰。
- using UnityEngine;
- using System.Collections;
- public class MovieTest : MonoBehaviour
- {
- //电影纹理
- public MovieTexture movTexture;
- void Start()
- {
- //设置当前对象的主纹理为电影纹理
- renderer.material.mainTexture = movTexture;
- //设置电影纹理播放模式为循环
- movTexture.loop = true;
- //StartCoroutine(DownLoadMovie());
- }
- void OnGUI()
- {
- if (GUILayout.Button("播放/继续"))
- {
- //播放/继续播放视频
- if (!movTexture.isPlaying)
- {
- movTexture.Play();
- }
- }
- if (GUILayout.Button("暂停播放"))
- {
- //暂停播放
- movTexture.Pause();
- }
- if (GUILayout.Button("停止播放"))
- {
- //停止播放
- movTexture.Stop();
- }
- }
- IEnumerator DownLoadMovie()
- {
- WWW www = new WWW("http://127.0.0.1/Head.ogv");
- yield return www;
- Debug.Log(Time.time);
- movTexture = www.movie;
- //设置当前对象的主纹理为电影纹理
- renderer.material.mainTexture = movTexture;
- movTexture.loop = true;
- }
- }
加声音
- using UnityEngine;
- using System.Collections;
- public class MovieTest : MonoBehaviour
- {
- //电影纹理
- public MovieTexture movTexture;
- //声音
- public AudioSource movAudio;
- void Start()
- {
- //设置当前对象的主纹理为电影纹理
- renderer.material.mainTexture = movTexture;
- //设置电影纹理播放模式为循环
- movTexture.loop = true;
- //StartCoroutine(DownLoadMovie());
- }
- void OnGUI()
- {
- if (GUILayout.Button("播放/继续"))
- {
- //播放/继续播放视频
- if (!movTexture.isPlaying)
- {
- movTexture.Play();
- movAudio.Play();
- }
- }
- if (GUILayout.Button("暂停播放"))
- {
- //暂停播放
- movTexture.Pause();
- movAudio.Pause();
- }
- if (GUILayout.Button("停止播放"))
- {
- //停止播放
- movTexture.Stop();
- movAudio.Stop();
- }
- }
- IEnumerator DownLoadMovie()
- {
- WWW www = new WWW("http://127.0.0.1/Head.ogv");
- yield return www;
- Debug.Log(Time.time);
- movTexture = www.movie;
- //设置当前对象的主纹理为电影纹理
- renderer.material.mainTexture = movTexture;
- movTexture.loop = true;
- }
- }
注:1280*720分辨率的视频以此方法播放不会产生黑边。
以前只是测试,没有实际使用,发现多次点击播放后会有内存泄露。如下方法解决
- using UnityEngine;
- using System.Collections;
- public class WebMovie : MonoBehaviour {
- //电影纹理
- public MovieTexture movTexture;
- WWW www;
- void Start()
- {
- }
- void OnGUI()
- {
- if (GUILayout.Button("加载视频"))
- {
- StartCoroutine(DownLoadMovie());
- }
- if (GUILayout.Button("播放/继续"))
- {
- //播放/继续播放视频
- if (!movTexture.isPlaying)
- {
- movTexture.Play();
- }
- }
- if (GUILayout.Button("暂停播放"))
- {
- //暂停播放
- movTexture.Pause();
- }
- if (GUILayout.Button("停止播放"))
- {
- //停止播放
- movTexture.Stop();
- }
- if (GUILayout.Button("卸载内存"))
- {
- renderer.material.mainTexture = null;
- movTexture = null;
- www = null;
- Resources.UnloadUnusedAssets();
- }
- }
- IEnumerator DownLoadMovie()
- {
- www = new WWW("http://127.0.0.1/mumaren.ogv");
- yield return www;
- Debug.Log(Time.time);
- movTexture = www.movie;
- //设置当前对象的主纹理为电影纹理
- renderer.material.mainTexture = movTexture;
- movTexture.loop = true;
- }
- }
就是销毁www对象,但是在这之前,要去掉别的对象对www的引用,比如材质球的主贴图、声明的movTexture,或许还有audioClip。
转载于:https://www.cnblogs.com/alps/p/5588502.html
Unity3D播放视频相关推荐
- Unity3D两种方式播放视频
Unity3D中播放游戏视频的方式有两种,第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上.第二种是在GUI层面上播放视频.播放视频其实和贴图非常相 ...
- Unity3D教程:播放视频的两种方式
Unity3D中播放游戏视频的方式有两种,第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上.第二种是在GUI层面上播放视频.播放视频其实和贴图非常相像, ...
- Unity3D VideoPlayer播放视频和音频
Unity3D VideoPlayer播放视频和音频 今天来记录一下用Unity自带的VideoPlayer播放视频和音频. 首先准备一个带音频的视频文件,导入到工程中.Windows支持的视频格式有 ...
- Unity3d C# 使用Universal Media Player(ump)插件播放视频的众坑之无法播放视频和VLC播放器依赖的问题
前言 Ump播放视频的坑,相信很多人都踩过了很多了,这个问题是必须VLC播放器的问题,我默认导入UMP Pro Win Mac Linux WebGL 2.0.3后,设置界面是这样的: 并且无法去除U ...
- 【Unity3d】在Unity3d中播放视频:AVPro Video的使用
1.插件介绍 之前讲到使用Unity的MoveTexture和Image来实现简单的播放器,虽然可以实现简单的视频播放功能,但是对于商业化或者移动端的项目来说远远不够.RenderHeads提供了一款 ...
- 解决【unity3d】播放视频的两种操作方式
想通过Unity3D播放游戏视频主要有两种方式.第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上.第二种是在GUI层面上播放视频.播放视频其实和贴图非常 ...
- Unity3D 如何用3D游戏体播放视频 VideoPlayer
如何用3D游戏体播放视频? 开发者在用Unity3D做工艺仿真.AR或者游戏时,经常要在各种形状的3D游戏体上插播视频充当广告或者教学,那到底怎样实现呢?这就要用到Unity内置的视频播放组件 -- ...
- unity3d两种播放视频的方式
在Unity3D中播放游戏视频的方式有两种.第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上.第二种是在GUI层面上播放视频.播放视频其实和贴图非常相像 ...
- Unity3D播放ogv格式的视频
http://pan.baidu.com/s/1dDzZmdr,该转换器会把其他格式转化为ogv格式,直接被unity识别,不需要安装quicktime不需要重启,更为重要的是比把mov导入unity ...
最新文章
- iphonex价格_iPhone12成10年内最受期待的苹果手机,但价格会狂涨
- vue项目的实用配置
- 简练软考知识点整理-项目启动过程组
- java开发属于后端吗,值得一读!
- HDU 2544最短路dijkstra模板题
- AlexNet层级分析(涉及:卷积核操作下下层网络特征图size计算;对通道和卷积核尺寸及通道前层feature map和卷积核的运算关系的解释)
- TensorFlow 2.0简介
- RabbitMQ的基本概念
- java xml类型_java 解析String类型的xml
- Excel VBA入门的基础语句
- POJ 3237 Tree (树链拆分)
- 在actionbar中加入item的方法
- 55.模拟撕衣服游戏编辑图片
- 【sketchup 2021】草图大师图像输出与渲染之Enscape渲染(优秀的实时渲染软件)的高级使用【灯光的添加、代理模型的添加、材质编辑器、视频编辑器、全景导出并编辑】
- LaTeX定义新命令
- 李小杰_测试工程师简历
- 按键精灵 打开windows系统应用
- 利用PIL库创建空白图像
- sed删除空行、换行符的方法 (包括空格、特殊字符、tab等组成的空行) vim删除^M
- 【锐捷交换机】设备有网关的ARP缓存记录,但是ping不通网关地址——重置systemMac
热门文章
- 设计模式之---解释器模式
- 《DSP using MATLAB》示例Example4.2
- YOLO系列专题——YOLOv1理论篇
- python获取月份字符串_python 时间字符串与日期转化
- (1)非对称加密——RSA——史上最通俗的小白可看懂!
- mysql忘记命令后半部分_MySQL常用命令
- MySQL数据库如何管理与维护_MySQL安全管理、数据库维护及改善性能
- java如何阻塞父窗体,java图形设计,窗口阻塞的问题。
- 复旦大学python期末考试_在复旦大学当学渣是怎样的?
- 最长公共子序列php,动态规划(最长公共子序列LCS)