소리#

소개#

VEX AIR 드론 컨트롤러를 사용하면 내장 사운드, 사용자 지정 오디오 파일 및 악보를 재생할 수 있습니다. 또한 사운드를 정지하고 현재 오디오가 재생 중인지 감지하는 기능도 포함되어 있습니다.

아래는 사용 가능한 모든 방법의 목록입니다.

동작 - 소리 재생 및 정지

  • play — 미리 정의된 목록에서 내장 사운드를 재생합니다.

  • play_file — 사용자가 업로드한 사운드를 재생합니다.

  • play_note — 지정된 피치, 옥타브 및 지속 시간을 가진 음표를 재생합니다.

  • stop — 현재 재생 중인 모든 소리를 정지합니다.

Getters - 소리의 상태 가져오기

  • 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 — 소리가 재생되지 않습니다

Usage:
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!")