持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情
概述
本篇文章主要分享一个作者平时在开发过程中使用过的感觉还比较好的插件,希望对各位日后开发过程中能够有所帮助。本篇文章主要分享的插件是AVPro Video 。一款非常好用的视频播放插件。在Unity中除了自带的VideoPlayer,在一个比较好用,的就是AVPro Video插件。
使用
上一篇文章我们讲解了在在Unity中如何使用代码控制AVPro进行视频的播放/暂停/停止以及控制视频进行前后跳转,。本篇文章将继续介绍如何在Unity中使用代码控制播放视频时的音量。 首先来看一下在Unity中如何控制AVPro的音量。在AVPro中,想要控制音量其实还是在Control中,我们可以使用
_mediaPlayer.Control.MuteAudio(bool);
来控制视频的音量(静音/播放声音)。其实就是控制视频是否播放音量,对应组件如下位置
但是很多时候我们可能会使用到滑动条来进行视频音量的控制,接下来我们就来看看,要如何通过滑动条灵活的控制视频的音量,在代码中,我们可以通过_mediaPlayer.AudioVolume
来进行控制视频的音量大小问题,在对应的组件中是如下位置
接下来我们就看一下该如何使用代码控制,我们通过组件中Volume可以看到,他的值在0-1之间,其实就是Unity中滑动条的值,他们是一样的,这样我们通过代码控制视频音量就会简单很多。
首先定义变量,视频组件,滑动条以及一个float类型的音量值
MediaPlayer _mediaPlayer = null;
Slider _sliderVolume = null;
float _audioVolume = 1f;
接着我们首先判断是否有视频,有才可以控制,要不然就控制了个寂寞。然后将滑动条的值赋值给定义的音量
if (_mediaPlayer && _mediaPlayer.Control != null)
{
_audioVolume = _sliderVolume.value;
ApplyAudioVolume();
}
上述的ApplyAudioVolume方法就是将滑动条的值复制给视频组件中的Volume.
private void ApplyAudioVolume()
{
if (_mediaPlayer)
{
_mediaPlayer.AudioVolume = _audioVolume;
}
}
其实上述的代码我们也可以不使用float _audioVolume
,直接进行赋值,但是使用一个中间变量可能会在以后更方便一些。
这样我们就实现了通过滑动条控制视频音量的目的。为了程序更严谨,我们还需要在程序开始的时候,将滑动条的数值和视频的真实音量大小进行以下同步
_sliderVolume.value = _mediaPlayer.AudioVolume;
结束
本篇文章就介绍到这里,主要就是介绍了一下在Unity中如何使用代码控制视频的音量功能,下一篇文章我们将继续介绍AVPro插件的使用,敬请期待。。。