Unity AVPro Video uses WebGL to play video streams

1. Create a Media Player object. Right-click Video->Media Player in the Hierarchy view or select the GameObject menu in the menu bar, and then select Video->Media Player.
Create Media Player

2. Create Display uGui object. Right-click UI->Display uGui in the Hierarchy view or select the Component menu AVPro Video->Display uGui in the menu bar.
Create Display uGui

3. Specify the Media Player component for Display uGui
Specified Media Player
4.
simple annotation
insert image description here
The most used Media Player components should be Absolute Path Or URL and Relative To StreamingAssets Folder.

5. Specify video resource or URL link
specify video resource
Specify the URL address

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

Project requirements: webgl display video stream (camera)
Video format: The original video stream format is flv. After various attempts, it cannot be played on webgl. After negotiation, a video stream in m3u8 format is provided. Implementation principle: Create
Media Player object and create Display uGui object, the code controls which video to play

代码片段
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();

Note: The webgl platform is packaged, the video stream format is m3u8, and the settings
insert image description here
are added to the packaged index.html (I put hls.min.js in the Build folder)
insert image description here

hls.js and hls.min.js
extraction code: 7drh
AVPro 2 version plug-
in extraction code: ujf3
is only for learning and communication, do not use for commercial use
AVPro 1 version plug-
in extraction code: 4460
is for learning and communication only, do not use for business use

Guess you like

Origin blog.csdn.net/weixin_44238530/article/details/127799136