关于Unity3D VideoPlayer播放视频中的声音的问题

时间:2021-06-08 09:27:44

VideoPlayer是unity5.6后一个较新的功能,方便快速的实现了视频资源的播放,功能实现也比较简单,这里就不介绍了。主要说一下有关声音的问题,不是什么高深的技术,但希望能给遇到这个问题的人节省一点点时间

一:在控制面板中添加

关于Unity3D VideoPlayer播放视频中的声音的问题

如上图,在指定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模块设置完成的情况先才开始播放视频。