音频与视频 | Audio and Video

此类拼图用来加载和播放音频与视频文件,以及合成MIDI声音。

内容

拼图参考

load sound(加载声音)

使用指定的URL加载一个音频文件。音频通过HTML5音频标签或WebAudio API播放,这取决于所选择的类型:Musicsound/midi 。此拼图会将加载的音频添加到内存缓存中,这样之后使用此这个拼图时调用相同的URL的音频,就无需再重新加载相同的文件。建议使用 .mp3 格式,大多数浏览器都支持。

预载音频

音频文件需要一定的时间来加载,所以它们并不能立即使用。因此单纯在 play(播放) 拼图里使用 *load sound(加载声音)* ,音频可能无法直接开始播放。

为确保应用中的音频能够正常播放,我们建议预先加载音频文件,例如,在Verge3D应用初始化前执行的 init 标签中预载。您也可以使用 connector(连接器) 拼图,以更方便的方式组织一堆 "load sound(加载声音)" 拼图。

在 "init" 标签中预载音频。

之后在 main 标签或用户创建的标签中,使用预装的音频文件应该不会引起任何问题,因为在第一次使用 load sound(加载声音) 拼图后,音频已经被缓存了,不需要再次下载:

在 "main" 标签中使用预装的音频。

自动播放限制

一般来说,以编程方式启动的音频播放(如使用拼图播放)很可能会被浏览器阻止。这是因为自动播放策略限制了音频在网页上的自动播放方式。这种限制的目的是为了改善整体的用户体验:阻止网页在未被触发的情况下自主播放音频,产生噪音干扰用户。

虽然在不同的浏览器中这种策略的实施方式不同,有各种允许或不允许自动播放的条件,但播放音频的一般规则是等待用户与网页互动。

如果这种互动已经隐含在应用逻辑中,例如,在点击时播放声音(无论是点击3D对象,还是点击HTML按钮),您就无需担心这些限制。但如果您想让应用在应用被加载时就开始播放播放背景音乐。由于这不可能总是以自动的方式完成,一个好的解决方案是制作一个 "启动" 按钮,在应用加载完成时启动。点击它算作一个用户交互,即可开始音频播放。

"music" vs "sound" vs "midi" 音频

此拼图允许您选择使用哪个API来加载和播放音频文件。

大多数现代浏览器都支持 soundmidi 类型所使用的网络音频API。但是,如果您需要您的音频在不支持网络音频的浏览器中也可使用(如Internet Explorer 11),则必须使用 music 类型。

如果需要在有 sound/music 类型的浏览器中使用,并同时支持Internet Explorer 11,那么推荐的解决方案是使用 feature available(功能可用) 拼图,并选择 Web Audio API 选项来检查API是否可用,然后根据情况加载 musicsound 类型的音频。您可以对 预加载 和播放音频的方式进行设置,如下图所示。

在 "init" 初始化选项卡中预装音频,并检查Web Audio API的可用性。 在 "main" 选项卡中使用预载的音频,并检查网络音频API的可用性。

load video(加载视频)

创建一个 HTML5视频 元素并使用指定的URL加载一个视频文件。此拼图会将加载的视频添加到内存缓存中,这样之后使用此这个拼图时调用相同的URL的视频,就无需再重新加载相同的文件。建议使用 .mp4 格式,大多数浏览器都支持。

Load load video(加载视频) 拼图不会在您的场景中创建任何可见的元素。请使用 replace texture(替换纹理) 拼图将视频纹理分配给材质以使其可见。

play(播放)

开始播放音频或视频。如果启用 loop 复选框,音视频会循环播放。

由于浏览器的限制(防止恶意网站播放噪音或视频),此拼图不适用于(在场景加载时)自动播放。您可以使用用户交互的事件来执行播放。使用 when clicked(当点击...时)event(事件) 来处理此类事件。

这条规则有一个例外:浏览器允许自动播放静音的视频。参见 mute(静音) 拼图。

pause(暂停)

暂停音频或视频播放。

stop(停止)

停止音频或视频的播放。使用此拼图相当于使用 pause(暂停) 拼图后再使用 rewind(倒带) 拼图。

rewind(倒带)

使得音频或视频资产从头开始播放。

set playback time(设置播放时间)

以秒为单位设置音视频当前播放时间。

不支持为 sound (WebAudio)类资产设置播放时间。

get playback time(获取播放时间)

以秒为单位(获取音视频当前播放时间。

不支持为 sound (WebAudio)类资产获取播放时间。

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(鼓号) 选择乐器。

示例:

note number(音符号)

返回音符号。用它来传递音符到 synth sound(合成声音) 拼图 的 1 - 9 通道。

scientific pitch(科学音高符号)指定八度,例如 C 4 表示 中音C 调。

drum number(鼓号)

返回鼓的编号。用它来传递音符到 synth sound(合成声音) 拼图的 drum 通道。

在使用拼图时遇到困难?

欢迎您随时在 论坛上提问!您还可以加入中文用户社区QQ群(171678760),在线寻求帮助。