当前位置:   article > 正文

【Unity】使用Video Player播放CG视频_unity里播放视频

unity里播放视频

1.在UI上新建一个Raw Image

在这里插入图片描述

2.添加Video Player

在这里插入图片描述

【参数详解】

  • Source:视频源类型,有Video Clip 和 URL两种
  • Video Clip:视频片段,当Source选择video clip生效
  • URL:视频路径,当Source选择URL生效
  • Play On Awake:启动时播放视频
  • Wait For First Frame:是否在第一帧加载完成后才播放,只有在 Play On Awake 被勾选时才会生效;
  • Loop:是否开启循环播放;
  • SkipOnDrop:是否允许VideoPlayer跳过帧以赶上当前时间
  • Playback Speed:播放速度;
  • Render Mode:渲染模式,主要有:
    ①Camera Far Plane(在相机远平面上播放,需要绑定到相机,此时其他物体都在视频前面)
    ②Came Near Plane(在相机近平面上播放,需要绑定到相机,此时其他物体都在视频后面)
    ③Render Texture(视频的每一帧输出到 Render Texture 文件中,可以使用 RayImage 显示 Render Texture,这样视频就可以在 RayImage 中播放)
    ④Material Override(需要绑定到一个 Renderer 对象,如 Cube 的 MeshRenderer,这样视频就可以在立方体表面播放)
  • Renderer:渲染器,当 Render Mode 选择为 Material Override 时才会有此选项
  • TargetTexture:渲染视频时要绘制的图形,当 Render Mode 选择为 Render Texture 时才会有此选项
  • Audio Output Mode:音频输出模式,主要有:
    ①None(不输出音频)
    ②AudioSource(用 AudioSource 播放)
    ③Direct(直接发送到音频输出硬件)

3.在工程里创建Render Texture,放入自己指定的文件夹下。

请添加图片描述

4.选择刚刚创建的Render Texture,改个名字,然后根据自己的需求调整大小

在这里插入图片描述

5.设置参数

①修改Source类型为URL
②Play On Awake去掉勾选,由程序控制。
在这里插入图片描述

6.StreamingAssets文件夹下加入要播放的cg视频

如果没有StreamingAssets文件夹,那么自己就新建一个。
在这里插入图片描述

7.新建一个VideoView.cs脚本,加入以下测试代码

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;

public class VideoView : MonoBehaviour
{
  	public RawImage mRawImage;
    public VideoPlayer mVideoPlayer;
    public RenderTexture rt;
    //跳过按钮
    public Button skipBtn;
    
    private bool bStop = false;
 
    void Start()
    {
        if (skipBtn != null)
        {
            skipBtn.onClick.AddListener(OnSkipBtn);
        }
        //视频播放结束事件
        mVideoPlayer.loopPointReached += OnMediaPlayerEvent;
      
    }

    public void OnMediaPlayerEvent(VideoPlayer source)
    {
        if (bStop) 
            return;
        Stop();
  
    }
 
    //播放视频
    public void Play(string videoPath)
    {
        bStop = false;    
        mRawImage.texture = rt;
        mVideoPlayer.url = Application.streamingAssetsPath + "/" + videoPath; ;
        mVideoPlayer.Play();
    }
    //暂停
    public void Pause()
    {
        mVideoPlayer.Pause();
    }

    //跳过
    void OnSkipBtn()
    {
        Stop();
    }
    //停止
    public void Stop()
    {
        if (bStop)
            return;
        bStop = true;
        mVideoPlayer.Stop();
 
      
    }

    private void OnDestroy()
    {
        mVideoPlayer.loopPointReached -= OnMediaPlayerEvent;
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69

8.把脚本挂到任意一个gameobject上,然后按照如图加入参数。

在这里插入图片描述

9.调用测试

在这里插入图片描述

10.如果播放的分辨率有问题,可以调整Aspect Ratio的模式

在这里插入图片描述

  • NoScaling:保留像素大小而不调整目标区域
  • FitVertically:按比例调整大小,使高度适合目标区域,按需进行裁剪或在每一侧添加黑条。
  • FitHorizontally:按比例调整大小,使宽度适合目标区域,按需进行裁剪或在上方和下方添加黑条。
  • FitInside:按比例调整大小,使内容适合目标区域,按需添加黑条。
  • FitOutside:按比例调整大小,使内容适合目标区域,按需进行裁剪。
  • Stretch:不按比例调整大小,以适应目标区域。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/475810
推荐阅读
相关标签
  

闽ICP备14008679号