大家好,我是SKODE。
小提示:选中左侧目录,可快速找到所需内容
本系列博客地址:传送门
参考自SDK文档P36。
AVProVideo not supported Internet Explorer 11(anyversion) , instead use the Microsoft Edge browser。(来自说明文档)
创建StreamingAssets文件夹。
a、将FullscreenVideo预制体拖到场景(这上面带的DisplayIMGUI)
b、设置视频路径
c、完成
a、层级面板右键新建:AVPro Video-Media Player
b、层级面板新建Canvas和EventSystem,Canvas下新建UI-AVPro Video uGUI(这上面带的DisplayUGUI)
c、将MediaPlayer拖入AVPro Video
d、现在调整 AVPro Video 即可调整视频大小、方位
e、完成
参考文档P41
Main
Auto Open:必须先打开,才能AutoStart播放。
Playback Rate:播放速度
Persistent:将DontDestroyOnLoad应用于对象,以便其在场景/关卡加载中不被销毁
Audio
Volume:音量大小
Muted:视频是否要静音
Event
下方讲解
Platform Specific
这些允许您为每个平台设置不同的属性,包括设置不同的文件路径。
这是快速配置全屏视频所带的脚本。
Display in Editor:是否在编辑器中显示矩形(Game界面的AVProVideo的图标)
Color:视频的颜色,包含透明通道
Scale Mode:
FullScreen:是否忽视x、y、高度、宽度的影响,使用全屏。
x:离最左侧的距离
y:离上侧距离
Width:视频宽度比例
Height:视频高度比例
DefaultTexture:当视频还未播放时展示的默认图片(需要取消勾选NoDefaultTexture)
NoDefaultTexture:是否显示默认图片(DefaultTexture)
MediaPlayer mp;
mp.Info.GetVideoWidth();
可获取:
MediaPlayer mp;
mp.Control.Pause();
可实现:
MediaPlayer mp;
Texture videoTexture = mp.TextureProducer.GetTexture();
在下方视频播放回调展示。
默认/PC端播放:
public MediaPlayer mediaPlayer;
void Start()
{
//PC端
mediaPlayer.m_VideoPath = "vedioURL";
mediaPlayer.OpenVideoFromFile(
MediaPlayer.FileLocation.AbsolutePathOrURL,
"视频路径",
false);//加载视频。false,取消自动播放
mediaPlayer.Control.Play();//播放视频
}
设置安卓端的播放:
public MediaPlayer mediaPlayer;
void Start()
{
//安卓端
mediaPlayer.PlatformOptionsAndroid.path = "vedioURL";
mediaPlayer.OpenVideoFromFile(
MediaPlayer.FileLocation.AbsolutePathOrURL,
mediaPlayer.PlatformOptionsAndroid.path,
false);//加载视频
mediaPlayer.Control.Play();//播放视频
}
面板配置方法
a、SourcePath:Absolute Path Or URL
b、播放URL时填入:“http://myserver.com/myvideo.mp4”or“rtsp://myserver.com:8080/mystream.rtsp”
播放本地视频时填入:
- C:/MyFolder/AnotherFolder/MyVideo.mp4(Windows)
- /Users/Mike/downloads/MyVideo.mp4(Mac/Linux)
- /Storage/SD/Videos/MyVideo.mp4(Android external SDCARD)
- /Storage/emulated/0/MyFolder/MyVideo.mp4(Android local file system)
- /mnt/sdcard/MyFolder/MyVideo.mp4(Android Oculus Go)
c、勾选AutoOpen、AutoPlay
面板配置方法
a、在Assets外(或Assets外新建的文件夹中)放上你的视频
b、SourcePath:Relative To Project Folder,Browse选择视频
c、AutoOpen、AutoPlay
面板配置方法
a、SourcePath:Relative To Streaming Assets Folder
b、Browse选择 StreamingAssets 文件夹相应视频
c、勾选AutoOpen、AutoPlay
视频必须不在StreamingAssets文件夹。
1)面板配置方法
a、Assets内新建文件夹,放入你的视频
b、SourcePath:Relative To Data Folder,Browse相应视频
c、AutoOpen、AutoPlay
//可以通过上面按键绑定,也可通过下面代码绑定监听。
//_mediaPlayer.Events.AddListener(Skode_OnVideoEvent);
public void Skode_OnVideoEvent(MediaPlayer mp, MediaPlayerEvent.EventType et, ErrorCode er)
{
switch (et)
{
case MediaPlayerEvent.EventType.MetaDataReady:
Debug.Log("视频数据准备完成。当元数据(宽度,持续时间等)可用时触发");
break;
case MediaPlayerEvent.EventType.ReadyToPlay:
Debug.Log("加载视频并准备播放时触发");
break;
case MediaPlayerEvent.EventType.Started:
Debug.Log("播放开始时触发");
break;
case MediaPlayerEvent.EventType.FirstFrameReady:
Debug.Log("渲染第一帧时触发");
break;
case MediaPlayerEvent.EventType.FinishedPlaying:
Debug.Log("当非循环视频播放完毕时触发");
break;
case MediaPlayerEvent.EventType.Closing:
Debug.Log("媒体关闭时触发");
break;
case MediaPlayerEvent.EventType.Error:
Debug.Log("发生错误时触发");
break;
case MediaPlayerEvent.EventType.SubtitleChange:
Debug.Log("字幕更改时触发");
break;
case MediaPlayerEvent.EventType.Stalled:
Debug.Log("媒体停顿/暂停?时触发(例如,当媒体流失去连接时)-当前仅在Windows平台上受支持");
break;
case MediaPlayerEvent.EventType.Unstalled:
Debug.Log("当介质从停止状态恢复时触发(例如,重新建立丢失的连接时)");
break;
case MediaPlayerEvent.EventType.ResolutionChanged:
Debug.Log("当视频的分辨率改变(包括负载)时触发");
break;
case MediaPlayerEvent.EventType.StartedSeeking:
Debug.Log("寻找开始时触发");
break;
case MediaPlayerEvent.EventType.FinishedSeeking:
Debug.Log("搜索完成时触发");
break;
case MediaPlayerEvent.EventType.StartedBuffering:
Debug.Log("缓冲开始时触发");
break;
case MediaPlayerEvent.EventType.FinishedBuffering:
Debug.Log("缓冲完成后触发");
break;
case MediaPlayerEvent.EventType.PropertiesChanged:
Debug.Log("当任何属性(例如,立体声包装改变)时触发-必须手动触发");
break;
case MediaPlayerEvent.EventType.PlaylistItemChanged:
Debug.Log("在播放列表中播放新项目时触发");
break;
case MediaPlayerEvent.EventType.PlaylistFinished:
Debug.Log("播放列表结束时触发");
break;
}
Debug.Log("Event: " + et.ToString());
}
一起进步
我是SKODE