unity跳过QuickTime播放视频的另一种方式
来源:互联网 发布:淘宝耐克正品折扣店 编辑:程序博客网 时间:2024/05/21 06:18
**本文转载自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。
阅读全文
0 0
- unity跳过QuickTime播放视频的另一种方式
- UNITY3D自学(六)-- unity视频播放的Quicktime问题
- 关于Unity中不用安装QuickTime播放视频的方法
- 视频播放插件AvPro QuickTime
- Unity 在IOS上播放视频不能跳过
- Unity视频播放的各种实现方式汇总
- Unity视频播放的各种实现方式汇总
- 播放视频的方式
- Android播放视频的方式
- 关于 QuickTime MP4文件格式的流媒体播放
- Javascript控制网页内Quicktime插件音视频播放
- 浏览器使用quicktime插件播放rtsp实时视频流
- 浏览器使用quicktime插件播放rtsp实时视频流
- Unity中播放视频的方法
- 基于unity制作的AR视频播放
- unity 播放视频
- unity播放视频代码
- Unity播放视频
- 【Leaflet·1】从加载出第一幅地图开始
- 如何增加你的生产力
- Eclipse---Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules
- Linux系统编程——Linux系统调用
- 懒得每篇发个博了,干脆大杂烩,一起来吧
- unity跳过QuickTime播放视频的另一种方式
- PopupWindow总结
- MSC Simufact.Forming 14.0.1 Update Only Win64 1DVD
- Spring Boot -- 全局异常处理之REST API 的自定义错误响应信息
- OpenGL中常用函数详解和VBO VAO详解以及VAO的使用
- OTN承载网
- 学习笔记之面向对象编程9(异常的捕获和处理)
- java 文件删除问题
- jQuery选择器