Unity通過plane加攝像頭實現視頻播放功能

貼出源碼;

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>()是必須的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章