持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第25天,点击查看活动详情
概述
本篇文章主要分享一个作者平时在开发过程中使用过的感觉还比较好的插件,希望对各位日后开发过程中能够有所帮助。本篇文章主要分享的插件是AVPro Video 。一款非常好用的视频播放插件。在Unity中除了自带的VideoPlayer,在一个比较好用,的就是AVPro Video插件。
使用
上一篇文章我们讲解了如何在Unity中使用代码控制播放视频时的音量。本篇文章将继续介绍在Unity如何通过打码进行视频切换。
在Setting的Source中我们可以看到,Media Source一共有两种模式,一种是Reference(引用)直接在Inspector面板上将视频赋值拖上即可,一种是Path(相对路径)使用路径进行视屏播放
本篇文章我们主要使用的就是第二种,通过Path进行视频地址设置,我们选择Path后可以看到下方会多出来好几个选项,有Close,有Load,这个两个按钮主要是用来控制在组件的上方进行视频预览的。在这两个按钮后方还有一个绿色的文件夹按钮,点开可以直接打开文件选择器,进行视频选择
Path模式下,一共有5种目录形式
- AbsolutePathOrURL:URL或者是绝对路径
- RelativeToDataFolder:工程数据只读目录
- RelativeToPersistentDataFolder:工程持续化目录
- RelativeToProjectFolder:工程数据只读目录上层
- RelativeToStreamingAssetsFolder:StreamingAssets目录
public static string GetPath(MediaPathType location)
{
string result = string.Empty;
switch (location)
{
case MediaPathType.AbsolutePathOrURL:
break;
case MediaPathType.RelativeToDataFolder:
result = Application.dataPath;
break;
case MediaPathType.RelativeToPersistentDataFolder:
result = Application.persistentDataPath;
break;
case MediaPathType.RelativeToProjectFolder:
#if !UNITY_WINRT_8_1
string path = "..";
#if UNITY_STANDALONE_OSX && !UNITY_EDITOR_OSX
path += "/..";
#endif
result = System.IO.Path.GetFullPath(System.IO.Path.Combine(Application.dataPath, path));
result = result.Replace('\\', '/');
#endif
break;
case MediaPathType.RelativeToStreamingAssetsFolder:
result = Application.streamingAssetsPath;
break;
}
return result;
}
在这里我们使用的是第一种AbsolutePathOrURL:URL或者是绝对路径。接下来就看一下如何在程序中动态设置视频的地址
_mediaPlayer.OpenMedia(new MediaPath(url, MediaPathType.AbsolutePathOrURL), autoPlay: true);
让我们来看一下上面的代码,OpenMedia中的第一个参数就是设置视频的地址,这里是New出来了一个MediaPath,设置了地址(url)和MediaPathType。OpenMedia的第二个参数是设置视频是否自动播放,就是视频加载完毕之后是否要进行自动播放
只有这么几句话,就可以在程序中实现视频的切换功能了,赶快行动起来吧,很简单的。。。。
结束
本篇文章就介绍到这里了,下一篇文章将继续介绍AVPro插件的其他代码用法,敬请期待。