unity学习31:Video Player 视频播放相关基础

目录

1 新增Video Player的 component

2 导入视频到Asset里

3 拖入到 video player的 video clip里去即可

4 渲染模式

4.1 多种渲染模式

4.2  如果选择 Render Texture模式

4.3 然后把Render Texture 拖到游戏里的 gameObject上面

5 在UI上显示

5.1 创建UI

5.2 在UI上播放

6 使用脚本播放Video

6.1 创建脚本,挂到对应的 gameObject上

6.2 代码测试

6.2.1 类型和音频有差别

6.2.2 VideoPlayer  并不需要指定clip为V1? 待查

6.2.3 VideoPlayer的 Pause() 以后继续 Play()即可,没有UnPause() 方法

6.2.4 详细代码


1 新增Video Player的 component

  • 播放视频需要Video Player
  • gameObject上增加一个 Video Player的 component

2 导入视频到Asset里

  • 下载video后拖过去进行
  • MP4是可以的

3 拖入到 video player的 video clip里去即可

4 渲染模式

4.1 多种渲染模式

  •  Render Texture
  •  camera for plane
  • camera  near plane
  • material Override
  • API only

4.2  如果选择 Render Texture模式

  • Render Mode选择 Render Texture
  • 新建1个Render Texture
  • 拖入到 target Texture

4.3 然后把Render Texture 拖到游戏里的 gameObject上面

  • 然后把Render Texture 拖到游戏里的 gameObject上面

5 在UI上显示

5.1 创建UI

  • 创建UI
  • UI / Raw Image

5.2 在UI上播放

  • 也是在纹理里拖入 rander Texture
  • 选择2D模式,就可以播放了

6 使用脚本播放Video

6.1 创建脚本,挂到对应的 gameObject上

创建脚本,挂到对应的 gameObject上,比如之前的这个竖着的板子上

6.2 代码测试

6.2.1 类型和音频有差别

  •     private VideoPlayer player1;
  •     private AudioSource1player1;

6.2.2 VideoPlayer  并不需要指定clip为V1? 待查

        player1=GetComponent<VideoPlayer>();

        // 不需要指定clip为V1?

        //player1.clip=v1;

        //player1.loop=true;

        //player1.volume=0.5f;  

        player1.Play();    

6.2.3 VideoPlayer的 Pause() 以后继续 Play()即可,没有UnPause() 方法

  •  //继续播放
  • player1.Play();

6.2.4 详细代码

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

public class TestVideo : MonoBehaviour
{

    //声明VideoClip
    public VideoClip v1;  //绑定外部clip

    //定义播放器组件
    private VideoPlayer player1;


    // Start is called before the first frame update
    void Start()
    {
        player1=GetComponent<VideoPlayer>();
        // 不需要指定clip为V1?
        //player1.clip=v1;
        //player1.loop=true;
        //player1.volume=0.5f;   
        player1.Play();    

    }

    // Update is called once per frame
    void Update()
    {
    if(Input.GetKeyDown(KeyCode.Space))
        {
            if(player1.isPlaying==true)
            {
                //暂停播放
                player1.Pause();
                //player1.Stop();

            }
            else
            {
                //继续播放
                player1.Play();
                //player1.Play();
            }
        }

        
    }
}