声音#

简介#

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

以下是所有方法的列表:

操作——播放或停止声音。

  • [play] (#play) —播放内置的音效。

  • [play_file] (#play_file) —播放用户上传的自定义声音。

  • [play_note] (#play_note) —在设定的持续时间内播放音符。

  • [stop] (#stop) —停止任何当前正在播放的声音。

Getter — 检查声音状态。

  • [is_active] (#is_active) —返回当前是否正在播放声音。

操作#

play#

play 以指定的音量百分比播放机器人的内置音效之一。由于这是一个非等待方法,机器人会播放内置音效并立即执行下一条指令,而不等待其播放结束。

用法:

robot.sound.play(sound, volume)

参数

描述

sound

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

volume

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

内置音效

播放音效

ACT_ANGRY

ACT_EXCITED

ACT_HAPPY

ACT_SAD

ACT_SILLY

BLINKER

BRAKES

CHEER

CHIRP

COMPLETE

CRASH

DETECTED

DOORBELL

FAIL

FLOURISH

HUAH

LOOPING

MOVE_FORWARD

MOVE_REVERSE

OBSTACLE

PAUSE

PICKUP

RECEIVE

RESUME

SENSING

SEND

SPARKLE

TADA

TURN_LEFT

TURN_RIGHT

# Play cheer
robot.sound.play(CHEER)

# Play cheer at full volume
robot.sound.play(CHEER, 100)

# Wait until sound is finished to move
robot.sound.play(ACT_HAPPY)
while robot.sound.is_active():
    wait(50, MSEC)
robot.turn_to(180)

play_file#

play_file 播放用户上传的自定义声音。由于这是一种非等待方法,机器人会播放自定义声音并移动到下一个命令,而无需等待其完成。

用法:

robot.sound.play_file(file, volume)

参数

描述

file

用户上传的自定义声音文件之一,从 SOUND1SOUND10。声音编号与AIM控制面板中显示的编号相匹配。

volume

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

# Play an uploaded sound
robot.sound.play_file(SOUND1)

# Play an uploaded sound at full volume
robot.sound.play_file(SOUND1, 100)

# Wait until sound is finished to move
robot.sound.play_file(SOUND1)
while robot.sound.is_active():
    wait(50, MSEC)
robot.turn_to(180)

play_note#

play_note 在特定持续时间内播放特定音符,以毫秒为单位。由于这是一种非等待方法,机器人播放特定音符并移动到下一个命令,而无需等待其完成。

用法:

robot.sound.play_note(note, length, volume)

参数

描述

note

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

length

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

volume

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

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

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

# Wait until note is finished to move
robot.sound.play_note("C6", 1000)
while robot.sound.is_active():
    wait(50, MSEC)
robot.turn_to(180)

stop#

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

用法:

robot.sound.stop()

参数

描述

该方法没有参数。

# Cut a sound off after 1 second
robot.sound.play(ACT_SILLY)
wait(1, SECONDS)
robot.sound.stop()

Getters#

is_active#

is_active 返回一个布尔值,指示声音当前是否正在播放。

  • True — 目前正在播放声音

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

用法:

robot.sound.is_active()

参数

描述

该方法没有参数。

# Play tada after cheer finishes
robot.sound.play(CHEER)   
while robot.sound.is_active():
    wait(10, MSEC)
robot.sound.play(TADA)