Unity3D游戏开发之在Unity3D中实现视频播放

 今天我们来做一个在Unity3D中实现视频播放的实例。该文章出自 【狗刨学习网】
      
      首先,Unity支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。我们只需要将这些文件放在项目文件夹里就可实现视频文件的导入。在Window系统下,我们需要在苹果公司的QuickTime软件下才能顺利地将视频文件导入Unity。如果视频文件含有音频文件,那么在导入Unity后会生成相应的音频文件。在Unity3D中实现视频播放的方法有两种:基于纹理贴图、基于GUI。我们下面分别来讲解:
       1、基于纹理贴图
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class MovieByTexture : MonoBehaviour {  
  5.       
  6.     //电影纹理贴图  
  7.     public MovieTexture mMovie;  
  8.     //电影音频源  
  9.     private AudioSource mAudio;  
  10.       
  11.     //媒体信息定义  
  12.     private string mediaName;//媒体名称  
  13.     private string mediaLength;//媒体长度  
  14.       
  15.     void Start ()   
  16.     {  
  17.       mAudio=GetComponent();  
  18.       //设置当前对象的主纹理为电影纹理贴图  
  19.       renderer.material.mainTexture=mMovie;  
  20.       //设置电影纹理播放模式为循环  
  21.       mMovie.loop=true;  
  22.       //开始播放电影  
  23.       mMovie.Play();  
  24.       //开始播放音乐  
  25.       mAudio.Play();  
  26.     }  
  27.       
  28.     void Update ()   
  29.     {  
  30.       //在这里更新媒体信息  
  31.       mediaName=mMovie.name;  
  32.       mediaLength=mMovie.duration.ToString();  
  33.     }  
  34.       
  35.     void OnGUI()  
  36.     {  
  37.       //播放控制  
  38.       if(GUILayout.Button("播放",GUILayout.Height(30)))  
  39.       {  
  40.         mMovie.Play();  
  41.         mAudio.Play();  
  42.       }  
  43.       //暂停控制  
  44.       if(GUILayout.Button("暂停",GUILayout.Height(30)))  
  45.       {  
  46.         mMovie.Pause();  
  47.         mAudio.Pause();  
  48.       }  
  49.       //停止控制  
  50.       if(GUILayout.Button("停止",GUILayout.Height(30)))  
  51.       {  
  52.         mMovie.Stop();  
  53.         mAudio.Stop();  
  54.       }  
  55.           
  56.       //绘制文本信息  
  57.       GUILayout.Label("媒体名称:"+mediaName,GUILayout.Height(30));  
  58.       GUILayout.Label("媒体长度:"+mediaLength,GUILayout.Height(30));    ;  
  59.     }  
  60. }  
复制代码
2、基于GUI
      
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class MovieByGUI : MonoBehaviour {  
  5.       
  6.     //电影纹理贴图  
  7.     public MovieTexture mMovie;  
  8.     //电影音频源  
  9.     private AudioSource mAudio;  
  10.       
  11.     //媒体信息定义  
  12.     private string mediaName;//媒体名称  
  13.     private string mediaLength;//媒体长度  
  14.       
  15.     void Start ()   
  16.     {  
  17.       mAudio=GetComponent();  
  18.       //设置当前对象的主纹理为电影纹理贴图  
  19.       renderer.material.mainTexture=mMovie;  
  20.       //设置电影纹理播放模式为循环  
  21.       mMovie.loop=true;  
  22.       //开始播放电影  
  23.       mMovie.Play();  
  24.       //开始播放音乐  
  25.       mAudio.Play();  
  26.     }  
  27.       
  28.     void Update ()   
  29.     {  
  30.       //在这里更新媒体信息  
  31.       mediaName=mMovie.name;  
  32.       mediaLength=mMovie.duration.ToString();  
  33.     }  
  34.       
  35.     void OnGUI()  
  36.     {  
  37.       //绘制电影纹理贴图  
  38.       GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),mMovie);  
  39.       //播放控制  
  40.       if(GUILayout.Button("播放",GUILayout.Height(30)))  
  41.       {  
  42.         mMovie.Play();  
  43.         mAudio.Play();  
  44.       }  
  45.       //暂停控制  
  46.       if(GUILayout.Button("暂停",GUILayout.Height(30)))  
  47.       {  
  48.         mMovie.Pause();  
  49.         mAudio.Pause();  
  50.       }  
  51.       //停止控制  
  52.       if(GUILayout.Button("停止",GUILayout.Height(30)))  
  53.       {  
  54.         mMovie.Stop();  
  55.         mAudio.Stop();  
  56.       }  
  57.           
  58.       //绘制文本信息  
  59.       GUILayout.Label("媒体名称:"+mediaName,GUILayout.Height(30));  
  60.       GUILayout.Label("媒体长度:"+mediaLength,GUILayout.Height(30));    ;  
  61.     }  
  62. }  
复制代码


      代码十分简单,这里不再赘述了。我们可以直接在场景中创建一个Plane,然后将脚本拖放到该对象上,再指定了音频文件、视频文件后就可以实现视频的播放了。最终效果如图所示:
                       
                       

222.png (165.81 KB, 下载次数: 0)

下载附件  保存到相册

昨天 23:44 上传


         今天的内容就是这样了,最近不知道该写点什么了,大家想了解什么内容的话,可以给我留言啊。  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值