Unity播放视频2D

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;

public class Ctrl_MovingCtrl : MonoBehaviour
{
    public RawImage image;
    public VideoClip videoToPlay;

    private VideoPlayer videoPlayer;
    private VideoSource videoSource;

    private AudioSource audioSource;
    //播放按钮本身

   // Use this for initialization
    void Start()
    {
        Application.runInBackground = true;
        PlayVideos();
    }
    
    /// <summary>
    /// 播放视频
    /// </summary>
    public void PlayVideos()
    {
        StartCoroutine(playVideo());
    }
    
    /// <summary>
    /// 暂停视频
    /// </summary>
    /// <returns></returns>
    /// 
    public void PauseVideos()
    {
        this.gameObject.GetComponent<VideoPlayer>().Pause();
    }

    /// <summary>
    /// 继续播放视频
    /// </summary>
    /// <returns></returns>
    public void ContinueVideos()
    {
        this.gameObject.GetComponent<VideoPlayer>().Play();
    }

   //public Text text_;
    private void Update()
    {
    
       // if(videoPlayer.GetComponent<VideoPlayer>().frameCount ==(float) videoPlayer.GetComponent<VideoPlayer>().frame)
       // {
       // Stop_Video_Audio();
       // GetComponent<Timer>().Bt_Close1=false;
       // text_. GetComponent<Timer_LeveUp>().Bt_Close = false;
       // }
}
    public void Stop_Video_Audio()
    {
        //Play Video
        videoPlayer.Stop();
       //Play Sound
        audioSource.Stop();
    } 
    
    IEnumerator playVideo()
    {
        //Add VideoPlayer to the GameObject
        videoPlayer = gameObject.AddComponent<VideoPlayer>();
        //Add AudioSource
        audioSource = gameObject.AddComponent<AudioSource>();
        //Disable Play on Awake for both Video and Audio
        videoPlayer.playOnAwake = false;
        audioSource.playOnAwake = false;
        //We want to play from video clip not from url
        videoPlayer.source = VideoSource.VideoClip;
        //Set Audio Output to AudioSource
        videoPlayer.audioOutputMode = VideoAudioOutputMode.AudioSource;
        //Assign the Audio from Video to AudioSource to be played
        videoPlayer.EnableAudioTrack(0, true);
        videoPlayer.SetTargetAudioSource(0, audioSource);
        //Set video To Play then prepare Audio to prevent Buffering
        videoPlayer.clip = videoToPlay;
        videoPlayer.Prepare();
        //Wait until video is prepared
        
        while (!videoPlayer.isPrepared)
        {
            //Debug.Log("Preparing Video");
            yield return null;
        }
        //Debug.Log("Done Preparing Video");
        //Assign the Texture from Video to RawImage to be displayed
        image.texture = videoPlayer.texture;
        //Play Video
        videoPlayer.Play();
        //Play Sound
        audioSource.Play();
        //Debug.Log("Playing Video");
        
        while (videoPlayer.isPlaying)
        {
            //Debug.LogWarning("Video Time: " + Mathf.FloorToInt((float)videoPlayer.time));
            yield return null;
        }
        //Debug.Log("Done Playing Video");
    }
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值