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 上傳


         今天的內容就是這樣了,最近不知道該寫點什麼了,大家想了解什麼內容的話,可以給我留言啊。  

發佈了0 篇原創文章 · 獲贊 1 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章