Unity AVPro Video는 WebGL을 사용하여 비디오 스트림을 재생합니다.

1. 미디어 플레이어 개체를 만듭니다. 계층 보기에서 Video->Media Player를 마우스 오른쪽 버튼으로 클릭하거나 메뉴 모음에서 GameObject 메뉴를 선택한 다음 Video->Media Player를 선택합니다.
미디어 플레이어 만들기

2. 디스플레이 uGui 개체를 만듭니다. 계층 보기에서 UI->Display uGui를 마우스 오른쪽 버튼으로 클릭하거나 메뉴 모음에서 구성 요소 메뉴 AVPro Video->Display uGui를 선택합니다.
디스플레이 uGui 만들기

3. 디스플레이 uGui용 미디어 플레이어 구성 요소를 지정합니다.
지정 Media Player
4.
간단한 주석
여기에 이미지 설명 삽입
가장 많이 사용되는 미디어 플레이어 구성 요소는 절대 경로 또는 URL 및 Relative To StreamingAssets 폴더여야 합니다.

5. 비디오 리소스 또는 URL 링크 지정
비디오 리소스 지정
URL 주소 지정

MP4测试地址
  驯龙高手  http://vfx.mtime.cn/Video/2019/02/04/mp4/190204084208765161.mp4
《紧急救援》 http://vfx.mtime.cn/Video/2019/03/21/mp4/190321153853126488.mp4

m3u8测试地址
  计时器    http://playertest.longtailvideo.com/adaptive/bipbop/gear4/prog_index.m3u8

프로젝트 요구 사항: webgl 디스플레이 비디오 스트림(카메라)
비디오 형식: 원래 비디오 스트림 형식은 flv입니다. 여러 시도 후 webgl에서 재생할 수 없습니다. 협상 후 m3u8 형식의 비디오 스트림을 제공합니다. 구현 원칙: 미디어 플레이어
만들기 객체를 만들고 Display uGui 객체를 생성하면 코드가 재생할 비디오를 제어합니다.

代码片段
using UnityEngine;
using UnityEngine.UI;
using RenderHeads.Media.AVProVideo;

    [SerializeField] private MediaPlayer mediaPlayer;           //加载视频流
    [SerializeField] private DisplayUGUI displayUGUI;           //显示视频
  
    void Awake()
    {
    
    
        Init();
    }
    
    private void Init()
    {
    
    
		if (mediaPlayer == null)
        {
    
    
            mediaPlayer = transform.Find("MediaPlayer")?.GetComponent<MediaPlayer>();
        }
        mediaPlayer.Events.AddListener(OnMediaPlayerEvent); //事件监听

        if (displayUGUI == null)
        {
    
    
            displayUGUI = 	transform.Find("Bg/VideoDisplay")?.GetComponent<DisplayUGUI>();
            if (displayUGUI.CurrentMediaPlayer == null)
            {
    
    
                displayUGUI.CurrentMediaPlayer = mediaPlayer;
            }
        }
	}
	
    private void OnMediaPlayerEvent(MediaPlayer arg0, MediaPlayerEvent.EventType arg1, ErrorCode arg2)
    {
    
    
        switch (arg1)
        {
    
    
            case MediaPlayerEvent.EventType.Started:    //开始播放的事件
            	//做一些其他操作,我这里的功能是视频还没加载完成,有一个转圈的UI,加载完成后,我把状态更改,隐藏该UI
                break;
        }
    }
    
//伪代码
//播放视频, 提供URL(自动开始)
mediaPlayer.OpenMedia(new MediaPath(url, MediaPathType.AbsolutePathOrURL));
//停止播放
mediaPlayer.Stop();
//暂停播放        
mediaPlayer.Pause();

참고: webgl 플랫폼은 패키징되어 있고 비디오 스트림 형식은 m3u8이며 설정은
여기에 이미지 설명 삽입
패키징된 index.html에 추가됩니다(Build 폴더에 hls.min.js를 넣었습니다).
여기에 이미지 설명 삽입

hls.js 및 hls.min.js
추출 코드: 7drh
AVPro 2 버전 플러그인
추출 코드: ujf3
은 학습 및 커뮤니케이션 전용, 상업적 용도로 사용하지 마십시오.
AVPro 1 버전 플러그인
추출 코드: 4460
은 학습 및 커뮤니케이션용입니다. 통신 전용, 업무용으로 사용하지 마십시오

추천

출처blog.csdn.net/weixin_44238530/article/details/127799136