您现在的位置是:首页 >技术交流 >UnityVR--组件9--VideoPlayer&AudioSource网站首页技术交流
UnityVR--组件9--VideoPlayer&AudioSource
目录
前言
在之前的VR场景中已经使用过VideoPlayer播放视频(Unity.UI的交互(6)-播放视频),不过在VR中设置是有些不同的,这里更详细地说明一下VideoPlayer组件的设置与使用,以及VideoPlayer类中常用的API。
音频组件AudioSource在场景中用于播放声音片段,可通过音频监听器或者混音器播放。
视频组件VideoPlayer参数解释
其中: Source——视频源,设置为VideoClip就可以选择Assets文件夹内的视频文件,也可以设置为URL,播放网络上的视频(需要用一些工具去获取视频源地址);
Audio Output Mode——声音的播放是通过视频,或是其他声音源
RenderMode渲染方式
常用的是前4种:
1. Camera Far Plane——基于摄像机的渲染,渲染在摄像机的远平面上,这时候视频在最远的地方播放:
2. Camera Near Plane——基于摄像机的渲染,渲染在摄像机的近平面上,这时候视频会将所有画面都覆盖了:
选择以上两种时,都需要选择相应的摄像机。
3. RenderTexture——将视频画面保存在RenderTexture上,用来做基于UGUI的播放器(就是使用UI组件播放),详见在VR中的应用播放视频,这里不再赘述;
4. Material Override——将视频画面复制给所选Render的Material,比如可以附着在场景内的任何物体上,建立一个球Sphere,将球拖到Renderer内,它就在球上播放:
VideoPlayer类中的API
在使用VideoPlayer类之前,需要引入命名空间UnityEngine.Video,代码中可以通过getCompoment<VideoPlayer>()获取组件,并修改其参数:
clip——视频片段
frameCount——视频的总帧数
frameRate——视频的帧率
time——视频当前播放的时间
Play()——播放
Paurse()——暂停
音频组件AudioSource参数解释
(参照Unity手册:音频源 - Unity 手册 (unity3d.com))
说明:1. 声音片段AudioClip支持mp3、ogg、wav、aiff等格式声音文件,mp3和ogg格式适合较长音频;
2. Output可以输出到AudioListener音频监听器,相当于代替人的耳朵。每个场景中只能有一个AudioListener,一般加载在主摄像机MainCamera上,因此如果加入其他的Camera时,需要将AudioListener移除。
3. AudioSource可以挂在场上任何地方,当然作为项目管理来说,需要进行规划和同一管理。
AudioSource类中的常见API&简单应用
void Play() //播放音频源中的音效
void Pause() //播放暂定
void UnPause() //继续播放
void PlayOneShot(AudioClip clip) //播放音频剪辑
void PlayClipAtPoint(AudioClip clip, Vector3 position)
//在某位置上播放音频剪辑
简单使用时,可以设置如下,在AudioSource中设置一个声音片段:
写一个简单的测试脚本,当按下T按键时,播放该音频:
public class TestAudio : MonoBehaviour
{
// 播放音频
private AudioSource m_AudioSource;
void Start()
{
m_AudioSource= GetComponent<AudioSource>();
}
void Update()
{
if(Input.GetKeyDown(KeyCode.T))
{
m_AudioSource.Play();
}
}
}
在一个工程项目中,会有很多的声音文件,播放的时间和条件也不相同,因此在实际制作中,需要集中管理,详见(管理阶层-AudioManager)