音频与视频 | Audio and Video
此类拼图用来加载和播放音频与视频文件,以及合成MIDI声音。
内容
拼图参考
load sound(加载声音)
使用指定的URL加载一个音频文件。 音频通过HTML5音频标签或WebAudio API播放, 这取决于所选择的类型:sound 或 music/midi 。 此拼图会将加载的音频添加到内存缓存中, 这样之后使用此这个拼图时调用相同的URL的音频,就无需再重新加载相同的文件。 建议使用 .mp3 格式,大多数浏览器都支持。
有关使用示例,请查看 Farmers Journey 演示(也可在资源商店中找到)。
预载音频
音频文件需要一定的时间来加载,所以它们并不能立即使用。 因此单纯在 play(播放) 拼图里 使用 load sound(加载声音) , 音频可能无法直接开始播放。
为确保应用中的音频能够正常播放, 我们建议预先加载音频文件, 例如,在Verge3D应用初始化前 执行的 init 标签中预载。 您也可以使用 connector(连接器) 拼图, 以更方便的方组织 一堆 "load sound(加载声音)" 拼图:
之后在 main 选项卡 或用户创建的选项卡中, 使用预装的音频文件应该不会引起任何问题, 因为在第一次使用 load sound(加载声音) 拼图后, 音频已经被缓存了,不需要再次下载:
自动播放限制
一般来说,以编程方式启动的音频播放(如使用拼图播放) 很可能会被浏览器阻止。 这是因为自动播放策略限制了音频在网页上的自动播放方式。 这种限制的目的是为了改善整体的用户体验: 阻止网页在未被触发的情况下自主播放音频, 产生噪音干扰用户。
虽然在不同的浏览器中这种策略的实施方式不同, 有各种允许或不允许自动播放的条件, 但播放音频的一般规则是 等待用户与网页互动。
如果这种互动已经隐含在应用逻辑中, 例如,在点击时播放声音(无论是点击3D对象,还是点击HTML按钮), 您就无需担心这些限制。 但如果您想让应用在应用被加载时就开始播放播放背景音乐。 由于这不可能总是以自动的方式完成, 一个好的解决方案是制作一个 "启动" 按钮, 在应用加载完成时启动。 点击它算作一个用户交互,即可开始音频播放。
"sound" vs "music" vs "midi" 音频
此拼图允许您选择使用哪个API 来加载和播放音频文件。
- sound (默认,HTML5音频标签),
更适合于短的音频文件,
例如短促效果音;
建议只在以下情形使用这种类型:
- 短循环(见 play(播放) 拼图 及其 loop(循环) 选项)音效 —— "sound" 使循环的音频无缝衔接, 而使用 "music" 则有明显的延迟。
- 需立即播放的音效, 例如在用户在Safari上交互时 会有延迟—— "sound" 可以解决这个问题。
- music (WebAudio API) - 应该在大多数时候 使用此类型;更适合于长的音频文件,例如背景音乐。
- midi (WebAudio API + GM Synth) - 特殊类型的 sound,用于播放标准MIDI文件(以 *.mid 为扩展名)。与存储在 *.mp3 中的音乐相比,MIDI文件体积非常小,对应用的加载时间影响最小。但MIDI存储的音频内容有限制,降低了配音质量。
load video(加载视频)
创建一个 HTML5视频 元素并使用指定的URL加载一个视频文件。此拼图会将加载的视频添加到内存缓存中,这样之后使用此这个拼图时调用相同的URL的视频,就无需再重新加载相同的文件。建议使用 .mp4格式,大多数浏览器都支持。
Load load video(加载视频) 拼图不会在您的场景中创建任何可见的元素。请使用 replace texture(替换纹理) 拼图将视频纹理分配给材质以使其可见。
有关使用示例,请查看 Video Texture 演示(也可在资源商店中找到)。
play(播放)
开始播放音频或视频。如果启用 loop 复选框,音视频会循环播放。
由于浏览器的限制(防止恶意网站播放噪音或视频),此拼图不适用于(在场景加载时)自动播放。您可以使用用户交互的事件来执行播放。使用 when clicked(当点击...时) 或 event(事件) 来处理此类事件。
这条规则有一个例外:浏览器允许自动播放静音的视频。参见 mute(静音) 拼图。
pause(暂停)
暂停音频或视频播放。
stop(停止)
停止音频或视频的播放。使用此拼图相当于使用 pause(暂停) 拼图后再使用 rewind(倒带) 拼图。
rewind(倒带)
使得音频或视频资产从头开始播放。
set playback time(设置播放时间)
以秒为单位设置音视频当前播放时间。
不支持为 sound (WebAudio)类资产设置播放时间。
get playback time(获取播放时间)
以秒为单位(获取音视频当前播放时间。
不支持为 sound (WebAudio)类资产获取播放时间。
get duration(获取持续时间)
获取音频/视频资产的持续时间(以秒为单位)。
set playback rate(设置播放速率)
设置音频/视频的播放速率。指定值<1为慢速播放,1为正常速度,>1为加速播放。
不支持为 midi 类资产设置播放速率。
set volume(设置音量)
设置声音的音量。输入音量被钳制在0.0-1.0的范围内。此拼图也适用于有嵌入式音轨的视频。
is playing(正在播放)
检查一个声音或视频是否正在被播放。
mute(静音)
将一个声音或视频静音。
除了控制音频音量之外,您还可以使用这个拼图来自动开始播放视频。这是有可行的,因为网络浏览器允许在没有用户互动的情况下播放静音的视频。
unmute(取消静音)
取消一个声音或视频的静音。
synth sound(合成声音)
使用内置的 通用MIDI 兼容的软件合成器(基于 TinySynth库)播放声音。支持各种乐器和效果。
- note on(音符开)
- 开始使用给定的合成器 chanel(通道) 来演奏 note(音符) ,使用 "velocity" 指定声音强度 。使用 at time 值来指定播放开始时间,单位为秒。
- note off(音符关)
- 停止演奏给定的 note(音符) 。
- set instrument(设置乐器)
- 从给定的列表中设置通道使用的乐器。
- set volume(设置音量)
- 设置通道的音量。
- set pan(设置平移)
- 设置通道平移水平。
- stop sounds(停止声音)
- 停止给定通道上的所有声音。
指定 Drums 为通道号来演奏鼓乐,用 drum number(鼓号) 选择乐器。
示例:
有关使用示例,请查看 Sound Synth 演示(也可在资源商店中找到)。
note number(音符号)
返回音符号。用它来传递音符到 synth sound(合成声音) 拼图 的 1 - 9 通道。
用 scientific pitch(科学音高符号)指定八度,例如 C 4 表示 中音C 调。
drum number(鼓号)
返回鼓的编号。用它来传递音符到 synth sound(合成声音) 拼图的 drum 通道。
在使用拼图时遇到困难?
欢迎您随时在 论坛上提问!您还可以加入中文用户社区QQ群(171678760),在线寻求帮助。