Unity3D播放视频

http://blog.csdn.net/awnuxcvbn/article/details/17618919

点击这里下载视频转换器,该转换器会把其他格式转化为ogv格式,直接被unity识别,不需要安装quicktime不需要重启,更为重要的是比把mov导入unity的要清晰。

[csharp] view plain copy

  1. using UnityEngine;
  2. using System.Collections;
  3. public class MovieTest : MonoBehaviour
  4. {
  5. //电影纹理
  6. public MovieTexture movTexture;
  7. void Start()
  8. {
  9. //设置当前对象的主纹理为电影纹理
  10. renderer.material.mainTexture = movTexture;
  11. //设置电影纹理播放模式为循环
  12. movTexture.loop = true;
  13. //StartCoroutine(DownLoadMovie());
  14. }
  15. void OnGUI()
  16. {
  17. if (GUILayout.Button("播放/继续"))
  18. {
  19. //播放/继续播放视频
  20. if (!movTexture.isPlaying)
  21. {
  22. movTexture.Play();
  23. }
  24. }
  25. if (GUILayout.Button("暂停播放"))
  26. {
  27. //暂停播放
  28. movTexture.Pause();
  29. }
  30. if (GUILayout.Button("停止播放"))
  31. {
  32. //停止播放
  33. movTexture.Stop();
  34. }
  35. }
  36. IEnumerator DownLoadMovie()
  37. {
  38. WWW www = new WWW("http://127.0.0.1/Head.ogv");
  39. yield return www;
  40. Debug.Log(Time.time);
  41. movTexture = www.movie;
  42. //设置当前对象的主纹理为电影纹理
  43. renderer.material.mainTexture = movTexture;
  44. movTexture.loop = true;
  45. }
  46. }

加声音

[csharp] view plain copy

  1. using UnityEngine;
  2. using System.Collections;
  3. public class MovieTest : MonoBehaviour
  4. {
  5. //电影纹理
  6. public MovieTexture movTexture;
  7. //声音
  8. public AudioSource movAudio;
  9. void Start()
  10. {
  11. //设置当前对象的主纹理为电影纹理
  12. renderer.material.mainTexture = movTexture;
  13. //设置电影纹理播放模式为循环
  14. movTexture.loop = true;
  15. //StartCoroutine(DownLoadMovie());
  16. }
  17. void OnGUI()
  18. {
  19. if (GUILayout.Button("播放/继续"))
  20. {
  21. //播放/继续播放视频
  22. if (!movTexture.isPlaying)
  23. {
  24. movTexture.Play();
  25. movAudio.Play();
  26. }
  27. }
  28. if (GUILayout.Button("暂停播放"))
  29. {
  30. //暂停播放
  31. movTexture.Pause();
  32. movAudio.Pause();
  33. }
  34. if (GUILayout.Button("停止播放"))
  35. {
  36. //停止播放
  37. movTexture.Stop();
  38. movAudio.Stop();
  39. }
  40. }
  41. IEnumerator DownLoadMovie()
  42. {
  43. WWW www = new WWW("http://127.0.0.1/Head.ogv");
  44. yield return www;
  45. Debug.Log(Time.time);
  46. movTexture = www.movie;
  47. //设置当前对象的主纹理为电影纹理
  48. renderer.material.mainTexture = movTexture;
  49. movTexture.loop = true;
  50. }
  51. }

注:1280*720分辨率的视频以此方法播放不会产生黑边。

以前只是测试,没有实际使用,发现多次点击播放后会有内存泄露。如下方法解决

[csharp] view plain copy

  1. using UnityEngine;
  2. using System.Collections;
  3. public class WebMovie : MonoBehaviour {
  4. //电影纹理
  5. public MovieTexture movTexture;
  6. WWW www;
  7. void Start()
  8. {
  9. }
  10. void OnGUI()
  11. {
  12. if (GUILayout.Button("加载视频"))
  13. {
  14. StartCoroutine(DownLoadMovie());
  15. }
  16. if (GUILayout.Button("播放/继续"))
  17. {
  18. //播放/继续播放视频
  19. if (!movTexture.isPlaying)
  20. {
  21. movTexture.Play();
  22. }
  23. }
  24. if (GUILayout.Button("暂停播放"))
  25. {
  26. //暂停播放
  27. movTexture.Pause();
  28. }
  29. if (GUILayout.Button("停止播放"))
  30. {
  31. //停止播放
  32. movTexture.Stop();
  33. }
  34. if (GUILayout.Button("卸载内存"))
  35. {
  36. renderer.material.mainTexture = null;
  37. movTexture = null;
  38. www = null;
  39. Resources.UnloadUnusedAssets();
  40. }
  41. }
  42. IEnumerator DownLoadMovie()
  43. {
  44. www = new WWW("http://127.0.0.1/mumaren.ogv");
  45. yield return www;
  46. Debug.Log(Time.time);
  47. movTexture = www.movie;
  48. //设置当前对象的主纹理为电影纹理
  49. renderer.material.mainTexture = movTexture;
  50. movTexture.loop = true;
  51. }
  52. }

就是销毁www对象,但是在这之前,要去掉别的对象对www的引用,比如材质球的主贴图、声明的movTexture,或许还有audioClip。

时间: 2024-10-10 23:56:41

Unity3D播放视频的相关文章

Unity3D 播放视频

http://blog.csdn.net/jbjwpzyl3611421/article/details/12780625 导入: 影片纹理是通过Apple QuickTime导入的(支持.mov, .mpg, .mpeg, .mp4, .avi, .asf格式).在Windows系统导入视频,要求安装QuickTime(这里下载),安装完成后重启计算机. 直接拖动影片至工程视图,当一个视频文件添加到项目中,它将被自动导入并转换成Ogg Theora格式. 当导入一个影片纹理时,伴随着视频画面,

Unity3D 如何在安卓手机上播放视频

以前只会在电脑上通过Unity3D播放视频,研究了下发现通过Unity3D在手机上播放视频也非常简单.现介绍如下. void OnGUI() { if (GUI.Button(new Rect(0,0,150,80),"播放/继续")) { Handheld.PlayFullScreenMovie("test.mp4", Color.blue, FullScreenMovieControlMode.Full); } } 简单吧 Unity3D 如何在安卓手机上播放视

Unity3D 怎样在安卓手机上播放视频

曾经仅仅会在电脑上通过Unity3D播放视频,研究了下发现通过Unity3D在手机上播放视频也很easy.现介绍例如以下. void OnGUI() { if (GUI.Button(new Rect(0,0,150,80),"播放/继续")) { Handheld.PlayFullScreenMovie("test.mp4", Color.blue, FullScreenMovieControlMode.Full); } } 简单吧

Unity3d 播放高质量视频解决方案

Unity3d 播放高质量视频解决方案~ 最近在折腾一个视频游戏.真的是一个视频游戏,游戏主背景是个大视频.可能切换三四个视频,而且需要无缝切换. 平台是安卓,蕊片是rockclip.找了各式各样的插件. movietexture,只能播放OGG和OVG,而且质量比较低.如果要转成高质量的视频,文件尺寸比较大. 放弃,继续找. easymovietexture, 某些机子上黑滴-兼容性不好,继续找. avipro 额,是这个名字么,最后发现只能在IOS上使用.继续找. Vuforia video

unity3d 安卓播放视频替代视频纹理

导出apk,是不能用电影纹理的,所以我们只能用这个办法 这个 Handheld.PlayFullScreenMovie(); 或者这个函数            iPhoneUtils.PlayMovie(); void OnGUI() { if (GUI.Button(new Rect(Screen.width / 2 - 10, Screen.height / 2 - 10, 100,20), "(h)CancelOnTouch")) { Handheld.PlayFullScre

Unity3D两种方式播放视频

  Unity3D中播放游戏视频的方式有两种,第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上.第二种是在GUI层面上播放视频.播放视频其实和贴图非常相像,因为播放视频用到的MovieTexture属于贴图Texture的子类,那么本章我们就好好学习一下Unity中播放视频的这两种方式.哇咔咔-           Unity支持的播放视频格式有.mov..mpg..mpeg..mp4..avi和.asf.只需将对应的视频文件拖拽入Project视

Unity3d 5.0 动态播放视频,播放音乐

1.Unity3d 5.0  动态播放视频 工具:Mobile Movie Texture.unitypackage2.1.1 问题描述:目前这个第三方播放视频工具不提供播放时音乐,并且网上教材都是将视频直接拖曳.无法动态更改需要播放的视频 解决方法: 核心代码:  m_movieTexture.Path = "MovieSamples/HandOfFate.ogv"; 试例Demo: [RequireComponent(typeof(MMT.MobileMovieTexture))]

Unity3D使用EasyMovieTexture插件播放视频

Unity3D对于视频的播放兼容个人感觉很差劲,之前写过一篇使用Unity3D自己自带的一些功能去播放视频,链接如下: http://www.cnblogs.com/xiaoyulong/p/8627016.html 今天我们使用EasyMovieTexture插件播放视频播放视频.个人觉得EasyMovieTexture插件还是比较好用的,里面封装了很多API,使用起来很方便.有一个不好的地方就是很多方法只有在视频播放时才有效果,就是觉得这个有点坑. 如上图,新建一个物体,挂上 MediaPl

Unity3D播放ogv格式的视频

http://pan.baidu.com/s/1dDzZmdr,该转换器会把其他格式转化为ogv格式,直接被unity识别,不需要安装quicktime不需要重启,更为重要的是比把mov导入unity的要清晰. [csharp] view plaincopy using UnityEngine; using System.Collections; public class MovieTest : MonoBehaviour { //电影纹理 public MovieTexture movText