1. 미디어 플레이어 개체를 만듭니다. 계층 보기에서 Video->Media Player를 마우스 오른쪽 버튼으로 클릭하거나 메뉴 모음에서 GameObject 메뉴를 선택한 다음 Video->Media Player를 선택합니다.
2. 디스플레이 uGui 개체를 만듭니다. 계층 보기에서 UI->Display uGui를 마우스 오른쪽 버튼으로 클릭하거나 메뉴 모음에서 구성 요소 메뉴 AVPro Video->Display uGui를 선택합니다.
3. 디스플레이 uGui용 미디어 플레이어 구성 요소를 지정합니다.
4.
가장 많이 사용되는 미디어 플레이어 구성 요소는 절대 경로 또는 URL 및 Relative To StreamingAssets 폴더여야 합니다.
5. 비디오 리소스 또는 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
은 학습 및 커뮤니케이션용입니다. 통신 전용, 업무용으로 사용하지 마십시오