在Unity3D播放视频

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


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


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


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

就是销毁www对象,但是在这之前,要去掉别的对象对www的引用,比如材质球的主贴图、声明的movTexture,或许还有audioClip。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unity3D是一个非常强大的游戏引擎,可以用来开发各种类型的游戏和交互式应用程序。在开发过程,经常需要使用视频和音频元素来增强用户体验。最近,一种新的视频格式“H265”已经广泛应用于多媒体领域。那么,Unity3D是否支持H265视频播放呢? 答案是肯定的。Unity3D已经内置了对H265视频格式的支持。使用Unity VideoPlayer组件,我们可以轻松地在场景播放H265视频。要实现这一点,首先需要将H265视频文件添加到项目。然后,使用VideoPlayer组件创建一个新的视频对象,并将视频文件分配给该对象。在播放期间,VideoPlayer组件会自动解码H265视频,并将其渲染到指定的渲染器上。 在Unity3D,我们还可以使用第三方插件进行H265视频播放。例如,我们可以使用FFmpeg Unity3D插件将H265视频文件转换为Unity可识别的格式,并将其加载到场景进行播放。这些插件通常具有更复杂的功能,如定制字幕、多语言支持等。 总之,Unity3D支持H265视频格式,我们可以使用内置的VideoPlayer组件或第三方插件来播放H265视频。这为游戏和应用程序开发者提供了一个新的选择,以提高用户的体验。 ### 回答2: Unity3D是一种跨平台的开发引擎,可以用来制作游戏和应用程序。H265是一种高效的视频编码格式,它可以提供更好的视频质量和更小的文件大小。 在Unity3D播放H265视频需要两个步骤。首先,您需要使用适当的工具将视频转换为H265编码。可以使用各种工具来完成这项任务,如FFmpeg。 然后,您需要将H265视频添加到Unity3D项目,并使用适当的组件进行播放Unity3D的VideoPlayer组件可以帮助您实现这一目标。在设置VideoPlayer组件时,您需要指定视频文件的路径和格式。您还可以指定其他选项,如音频输出和播放模式。 需要注意的是,播放H265视频可能需要适当的硬件支持。如果您的设备不支持H265硬件解码,视频可能无法正常播放或出现延迟和卡顿问题。在选择使用H265编码时,请确保您的应用程序的目标平台支持它。 总体而言,Unity3D可以很好地支持H265视频播放,但需要一些额外的设置和适当的硬件支持才能实现最佳效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值