unity跳过QuickTime播放视频的另一种方式
2017-09-07 11:07
686 查看
**本文转载自http://blog.csdn.net/awnuxcvbn/article/details/17618919**
点击这里下载视频转换器,该转换器会把其他格式转化为ogv格式,直接被unity识别,不需要安装quicktime不需要重启,更为重要的是比把mov导入unity的要清晰。
加声音
注:1280*720分辨率的视频以此方法播放不会产生黑边。
以前只是测试,没有实际使用,发现多次点击播放后会有内存泄露。如下方法解决
就是销毁www对象,但是在这之前,要去掉别的对象对www的引用,比如材质球的主贴图、声明的movTexture,或许还有audioClip。
点击这里下载视频转换器,该转换器会把其他格式转化为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。
相关文章推荐
- 关于Unity中不用安装QuickTime播放视频的方法
- 【Unity 3D】常用播放视频的几种方式
- Unity视频播放的各种实现方式汇总
- UNITY3D自学(六)-- unity视频播放的Quicktime问题
- Unity 在IOS上播放视频不能跳过
- Unity视频播放的各种实现方式汇总
- Unity视频播放的各种实现方式汇总
- 以RTMP的方式播放录制好的视频
- Unity实现RawImage图片显示视频 、灵活配置控制视频播放
- 如何在Unity中播放视频?
- Unity如何使用WWW类和协程完成图片、视频下载播放
- unity中播放视频(PC端和移动端)
- Android三种播放视频的方式
- unity .exe文件打开时跳过选择窗口界面的方式
- 【VR视频播放】解决Unity模型贴图反转的问题
- Unity移动端播放视频
- Unity——网页获取视频文件播放,获取图片更换纹理
- Unity3D研究之两种方式播放游戏视频
- Unity移动端视频播放(AVPro Video插件)