貼出源碼;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class play : MonoBehaviour {
public MovieTexture movieTexture;//請將你要播放的視頻文件(.mov、.mpg、.mpeg、.mp4、.avi和.asf)(需要安裝QuickTime軟件)直接拖到腳本上。
private Renderer rend;
private AudioSource audio;
// Use this for initialization
void Start () {
//設置當前對象的主紋理爲電影紋理
rend = GetComponent<Renderer>();
audio = GetComponent<AudioSource>();
rend.material.mainTexture = movieTexture;
//設置電影紋理播放模式爲循環
movieTexture.loop = true;
audio.clip = movieTexture.audioClip;
}
// Update is called once per frame
void Update () {
transform.localScale = new Vector3(3.5f, 1f, 1.2f);//播放的屏幕的大小
}
void OnGUI()
{
if(GUILayout.Button("播放/繼續"))
{
if (!movieTexture.isPlaying)
//播放/繼續播放視頻
{
movieTexture.Play();//播放視頻
audio.Play();//播放音頻
}
}
if(GUILayout.Button("暫停"))
movieTexture.Pause();
if (GUILayout.Button("停止"))
movieTexture.Pause();
}
}
網上我所參考的博客只說瞭如何播放視頻,但是通過movie.Texture播放的視頻不會自帶音軌,需要在Plane的Inspector裏面加上Audio Source組件然後再start方法裏寫上
audio = GetComponent<AudioSource>();
audio.clip = movieTexture.audioClip;
audio獲取到對象的音頻組件,將音軌切成視頻裏的音軌。
在視頻播放的方法里加上audio.Play播放方法。
另外網上的renderer.material.mainTexture=movTexture;
這條代碼是錯誤的,因爲5.0版本的renderer需要通過組件獲取了,不能直接使用,所以rend = GetComponent<Renderer>()是必須的。