VideoPlayer是unity5.6后一个较新的功能,方便快速的实现了视频资源的播放,功能实现也比较简单,这里就不介绍了。主要说一下有关声音的问题,不是什么高深的技术,但希望能给遇到这个问题的人节省一点点时间
一:在控制面板中添加
如上图,在指定Video Clip后,播放的视频是没有声音的,需要再挂一个Audio Source组件,不需要指定其AudioClip,直接将这个组件拖入VideoPlayer面板最下面的 Audio Source里,然后播放视频就用声音了。
二,在代码中添加(此时,控制面板中只需要挂上 Vide Player和 Audio Source就行,不需要对它们设置,方便动态播放不同的视频资源)
VideoPlayer videoPlayer;
videoPlayer = this.GetComponent<VideoPlayer>();
videoPlayer.loopPointReached += EndReached;//当前clip播放完成调用
videoPlayer.audioOutputMode = VideoAudioOutputMode.AudioSource;
videoPlayer.SetTargetAudioSource(0, this.GetComponent<AudioSource>());
videoPlayer.playOnAwake=false;
videoPlayer.IsAudioTrackEnabled(0);
videoPlayer.clip = “自己的Clip资源”;
videoPlayer.Play();
其中 videoPlayer.SetTargetAudioSource(0, this.GetComponent<AudioSource>());此方法用来添加指定的AudioSource组件,不然没有声音,此处的this.GetComponent<AudioSource>()是因为我的对象上面挂了AudioSource,你也可以引用其他的地方的AudioSource
videoPlayer.playOnAwake=false;这句话很重要,你可能知道playOnAwake是上面意思,但不明白它会造成什么影响,其实就是如果设置为true时,在awake的时候就已经开始播放视频了,而此时声音模块还没来得及加载,就会出现没有声音的情况,只有设置为false,当你播放第一个视频时才会有声音,它保证了在声音AudioSource模块设置完成的情况先才开始播放视频。