音效#

简介#

VEX AIR 无人机控制器允许用户播放内置音效、自定义音频文件和音符。它还包含用于停止声音和检测音频是否正在播放的控制功能。

以下是所有可用方法的列表:

音效 - 播放和停止音效

  • play — 播放预定义列表中的内置音效。

  • play_file —播放用户上传的音效。

  • play_note — 以指定的音高、八度和持续时间播放一个音符。

  • stop —停止任何当前正在播放的声音。

获取方法 - 获取音效状态

  • is_active —检查音效当前是否正在播放。

动作#

play#

play 以指定的音量百分比播放遥控器的内置音效之一。由于这是一个非等待方法,遥控器会播放内置音效,并在音效播放完成之前直接执行下一条命令。

用法:

controller.sound.play(sound, volume)

参数

描述

sound

下面列出的内置声音选项之一。

volume

可选。音量大小,取值范围为 0% 到 100% 的整数。默认值为 50%。

内置声音

播放声音

SUCCESS

FAULT

SENSING

DETECTED

OBSTACLE

LOOPING

COMPLETE

PAUSE

RESUME

SEND

RECEIVE

# Play the looping sound.
controller.sound.play(LOOPING)

# Play the looping sound at full volume.
controller.sound.play(LOOPING, 100)

# Play the looping sound. 
# Wait until the sound is finished before taking off.
controller.sound.play(LOOPING)
while controller.sound.is_active():
    wait(50, MSEC)
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()

play_file#

play_file 以指定的音量百分比播放用户加载的自定义音效。由于这是一个非等待方法,无人机会播放自定义音效,并在音效播放完成之前直接执行下一条命令。

用法:

controller.sound.play_file(file, volume)

参数

描述

file

用户上传的自定义音效文件之一,范围从 SOUND1 到 SOUND10。音效编号与 AIR 控制面板中显示的编号一致。

volume

可选。音量大小,取值范围为 0% 到 100% 的整数。默认值为 50%。

# Upload a sound file in VEXcode.
# Play the custom sound.
controller.sound.play_file(SOUND1)

# Upload a sound file in VEXcode.
# Play the custom sound at full volume.
controller.sound.play_file(SOUND1, 100)

# Play the custom sound sound. 
# Wait until the sound is finished before taking off.
controller.sound.play_file(SOUND1)
while controller.sound.is_active():
    wait(50, MSEC)
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()

play_note#

play_note 播放指定音符并持续指定的时间。由于这是一个非等待方法,无人机会播放指定音符,并在音符播放完成之前直接执行下一条命令。

用法:

controller.sound.play_note(note, duration, volume)

参数

描述

note

要播放的音高,以字符串形式书写(例如 C5、A#6)。有效音符为 A 到 G(可选的 # 表示升半音),涵盖八度 5 到 8。

duration

音符的持续时间,以毫秒为单位的整数表示。

volume

可选。音量大小,取值范围为 0% 到 100% 的整数。默认值为 50%。

# Play C5 for 2 seconds
controller.sound.play_note("C5", 2000)

# Play C5 for 2 seconds at full volume
controller.sound.play_note("C5", 2000, 100)

# Play a short tune.
controller.sound.play_note("C5", 1000)
while controller.sound.is_active():
    wait(50, MSEC)
controller.sound.play_note("D5", 1000)
while controller.sound.is_active():
    wait(50, MSEC)
controller.sound.play_note("E5", 250)
while controller.sound.is_active():
    wait(50, MSEC)

stop#

stop 停止当前正在播放的声音。

用法:

controller.sound.stop()

参数

描述

该方法没有参数。

# Upload a sound 10 seconds or greater in VEXcode.
# Stop the sound while it is playing.
controller.sound.play_file(SOUND1)
wait(6, SECONDS)
controller.sound.stop()

获取方法#

is_active#

is_active 返回一个布尔值,表示无人机当前是否正在播放音效。

  • True — 目前正在播放声音

  • False —没有正在播放的声音

用法:
controller.sound.is_active()

参数

描述

该方法没有参数。

# Display text once a sound starts playing
controller.sound.play(LOOPING)
while not controller.sound.is_active():
    wait(50, MSEC)
print("I hear the sound!")