大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei。
今天我们来做一个在Unity3D中实现视频播放的实例。首先,Unity支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。我们只需要将这些文件放在项目文件夹里就可实现视频文件的导入。在Window系统下,我们需要在苹果公司的QuickTime软件下才能顺利地将视频文件导入Unity。如果视频文件含有音频文件,那么在导入Unity后会生成相应的音频文件。在Unity3D中实现视频播放的方法有两种:基于纹理贴图、基于GUI。我们下面分别来讲解:
1、基于纹理贴图
using UnityEngine; using System.Collections; public class MovieByTexture : MonoBehaviour { //电影纹理贴图 public MovieTexture mMovie; //电影音频源 private AudioSource mAudio; //媒体信息定义 private string mediaName;//媒体名称 private string mediaLength;//媒体长度 void Start () { mAudio=GetComponent<AudioSource>(); //设置当前对象的主纹理为电影纹理贴图 renderer.material.mainTexture=mMovie; //设置电影纹理播放模式为循环 mMovie.loop=true; //开始播放电影 mMovie.Play(); //开始播放音乐 mAudio.Play(); } void Update () { //在这里更新媒体信息 mediaName=mMovie.name; mediaLength=mMovie.duration.ToString(); } void OnGUI() { //播放控制 if(GUILayout.Button("播放",GUILayout.Height(30))) { mMovie.Play(); mAudio.Play(); } //暂停控制 if(GUILayout.Button("暂停",GUILayout.Height(30))) { mMovie.Pause(); mAudio.Pause(); } //停止控制 if(GUILayout.Button("停止",GUILayout.Height(30))) { mMovie.Stop(); mAudio.Stop(); } //绘制文本信息 GUILayout.Label("媒体名称:"+mediaName,GUILayout.Height(30)); GUILayout.Label("媒体长度:"+mediaLength,GUILayout.Height(30)); ; } }
2、基于GUI
using UnityEngine; using System.Collections; public class MovieByGUI : MonoBehaviour { //电影纹理贴图 public MovieTexture mMovie; //电影音频源 private AudioSource mAudio; //媒体信息定义 private string mediaName;//媒体名称 private string mediaLength;//媒体长度 void Start () { mAudio=GetComponent<AudioSource>(); //设置当前对象的主纹理为电影纹理贴图 renderer.material.mainTexture=mMovie; //设置电影纹理播放模式为循环 mMovie.loop=true; //开始播放电影 mMovie.Play(); //开始播放音乐 mAudio.Play(); } void Update () { //在这里更新媒体信息 mediaName=mMovie.name; mediaLength=mMovie.duration.ToString(); } void OnGUI() { //绘制电影纹理贴图 GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),mMovie); //播放控制 if(GUILayout.Button("播放",GUILayout.Height(30))) { mMovie.Play(); mAudio.Play(); } //暂停控制 if(GUILayout.Button("暂停",GUILayout.Height(30))) { mMovie.Pause(); mAudio.Pause(); } //停止控制 if(GUILayout.Button("停止",GUILayout.Height(30))) { mMovie.Stop(); mAudio.Stop(); } //绘制文本信息 GUILayout.Label("媒体名称:"+mediaName,GUILayout.Height(30)); GUILayout.Label("媒体长度:"+mediaLength,GUILayout.Height(30)); ; } }
今天的内容就是这样了,最近不知道该写点什么了,大家想了解什么内容的话,可以给我留言啊。
喜欢我的博客请记住我的名字:秦元培,我的博客地址是:blog.csdn.net/qinyuanpei
转载请注明出处,本文作者:秦元培,本文出处:http://blog.csdn.net/qinyuanpei/article/details/24130347