Unity AVPro 使用

AVPro

感觉我写的没多大用处,后面看看文档再完善一些。目前的东西是可以满足一些简单的需求的。

说明

标题名称内容
Unity版本Unity 2021 .1.18f1c1
AVPro 版本AVPro Video - Ultra Edition 2.5.6
IDEVS2022
系统版本Win 10 1909
撰写日期2022 11月15日晚

需要注意的地方

文档137页,看的累了,就不看了。

使用之前需要注意的地方
Legacy support removed wecan focus on the modern features
Removed support for Unity 4.x, Unity 5.xand Unity 2017.x
Windows
Removed support for legacy Windows Metro (Phoneand 8.1)
Removed support for Windows XP
macOS
Minimum version changed to 10.12
Dropped OpenGL support
iOS / tvOS
Dropped 32-bit support
Dropped OpenGLES support
Minimum version changed to 11.0
Direct3D12 support requires minimum Unity 2019.3
Only in the Ultra Edition
WebGL plugin still included, but we do not support it (see WebGL platform notes)
10-bitvideo support has someelements that only work in the Ultra Edition and has other limitations as documented

来自有道翻译

传统支持被移除,我们可以专注于现代功能
移除对Unity 4的支持。x,单位5。xand Unity 2017.x
窗户
移除对遗留Windows Metro (phone和8.1)的支持
移除对Windows XP的支持
macOS
最低版本更改为10.12
放弃对OpenGL的支持
iOS / tvOS
放弃32位支持
放弃对OpenGLES的支持
最低版本更改为11.0
支持Direct3D12需要最低Unity 2019.3
只有Ultra版本
**仍然包含WebGL插件,但我们不支持它(参见WebGL平台说明)。**
10位视频支持有一些元素只在超版本中工作,并有其他限制文件
不支持的平台

在这里插入图片描述

不支持的平台
Linux桌面
卢明(Magic Leap)
电视平台(Tizen、三星TV等)
游戏机(XBox*、PlayStation、Switch等)
* XBox One可能支持使用UWP构建选项。不过我们还没有对此进行测试。
编码支持

在这里插入图片描述

Hap编解码器仅支持Windows和macOS平台。
NotchLC编解码器仅支持Windows平台。
空间音频仅支持Windows和Android平台。
10位纹理仅支持Windows, macOS, iOS和tvOS平台。
缓存仅支持Android和iOS平台。
实验功能。只能在Windows上使用。

目的

通过这篇博客可以学会什么

  1. 使用AVPro播放视频
  2. 使用AVPro播放多个视频
  3. 了解AVPro的一些的事件

使用AVPro播放视频

  1. 导入插件
    在这里插入图片描述

  2. 创建MediaReference(媒体引用)
    在这里插入图片描述

  3. 选择媒体引用的来源的路径类型,当前选择的是来自于StreramingAssets Foder
    在这里插入图片描述

  4. 选择文件
    在这里插入图片描述

  5. 创建MediaPlayer 源播放器
    在这里插入图片描述
    设置MediaPlayer然后为Media Reference赋值
    在这里插入图片描述是否自动播放视频是否自动播放视频。

  6. 创建一个Canvas
    在这里插入图片描述

  7. 创建一个AVPro Video
    在这里插入图片描述

  8. 添加Media Player

在这里插入图片描述

播放多个视频

我看的官方包中是使用的Playlist Media Player,我看了一下代码,很多,我就没在看下去了。然后我就自己想办法搞了一个。
MediaPlayer好像是不能作为预制体进行保存的。
在这里插入图片描述像这样进行布局之后,创建一个脚本clAVProTest然后将脚本挂在到AVPro Video上面。

在这里插入图片描述需要将MediaPlayerauto play设置为false
附加上极其敷衍的代码。

using System.Collections;
using System.Collections.Generic;
using RenderHeads.Media.AVProVideo;
using UnityEngine;
using UnityEngine.UI;

public class clAVProTest : MonoBehaviour
{
    public DisplayUGUI display;//播放器

    public MediaPlayer mediaPlayer1;
    public MediaPlayer mediaPlayer2;
    public MediaPlayer mediaPlayer3;
    public MediaPlayer mediaPlayer4;//

    public Button btnA;
    public Button btnB;
    public Button btnC;
    public Button btnD;//播放的按钮

    public Button btnStop;//停止
    public Button btnPause;//暂停
    public Button btnPlay;//播放

    void Start()
    {
        btnA.onClick.AddListener(() =>
        {
            display.CurrentMediaPlayer.Control.Stop();
            display.CurrentMediaPlayer = mediaPlayer1;
            display.CurrentMediaPlayer.Control.Play();
        });

        btnB.onClick.AddListener(() =>
        {
            display.CurrentMediaPlayer.Control.Stop();
            display.CurrentMediaPlayer = mediaPlayer2;
            display.CurrentMediaPlayer.Control.Play();
        });
        btnC.onClick.AddListener(() =>
        {
            display.CurrentMediaPlayer.Control.Stop();
            display.CurrentMediaPlayer = mediaPlayer3;
            display.CurrentMediaPlayer.Control.Play();
        });
        btnD.onClick.AddListener(() =>
        {
            display.CurrentMediaPlayer.Control.Stop();
            display.CurrentMediaPlayer = mediaPlayer4;
            display.CurrentMediaPlayer.Control.Play();
        });

        btnStop.onClick.AddListener(() =>
        {
            display.CurrentMediaPlayer.Control.Stop();
        });
        btnPause.onClick.AddListener(() =>
        {
            display.CurrentMediaPlayer.Control.Pause();
        });

        btnPlay.onClick.AddListener(() =>
        {
            display.CurrentMediaPlayer.Control.Play();
        });
    }
}


播放事件

using System.Collections;
using System.Collections.Generic;
using RenderHeads.Media.AVProVideo;
using UnityEngine;
using UnityEngine.UI;

public class clAVProTest : MonoBehaviour
{
    public DisplayUGUI display;//播放器

    public MediaPlayer mediaPlayer1;

    void Start()
    {
        display.CurrentMediaPlayer = mediaPlayer1;
        mediaPlayer1.Events.AddListener(OnMediaPlayerEvent);
        mediaPlayer1.Play();
    }


    /// <summary>
    /// AVPro事件管理
    /// </summary>
    /// <param name="mp"></param>
    /// <param name="et"></param>
    /// <param name="errorCode"></param>
    void OnMediaPlayerEvent(MediaPlayer mp, MediaPlayerEvent.EventType et, ErrorCode errorCode)
    {
        switch (et)
        {
            case MediaPlayerEvent.EventType.Started:
                Debug.Log("StartEvent");
                OnMediaPlayerStarted(mp);
                break;
            case MediaPlayerEvent.EventType.FinishedPlaying:
                Debug.Log("FinishEvent");
                OnMediaPlayerFinished(mp);
                break;
        }
    }
    /// <summary>
    /// 开始事件触发
    /// </summary>
    /// <param name="mp"></param>
    void OnMediaPlayerStarted(MediaPlayer mp)
    {
        Debug.Log("视频开始播放。");
    }
    /// <summary>
    /// 结束事件触发
    /// </summary>
    /// <param name="mp"></param>
    void OnMediaPlayerFinished(MediaPlayer mp)
    {
        Debug.Log("视频播放完毕。");
    }

}

其他事件

  • [跳转到视频的某一秒钟]
  • [为视频的某一秒添加事件]
  • [添加获取视频的总时长]

其他

问题1

使用Unity的VideoPlayer 在Win 7 SP1的上可能不能播放视频,使用AVPro可以解决。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值