54 lines
1.3 KiB
Python
54 lines
1.3 KiB
Python
# SPDX-FileCopyrightText: 2017 Limor Fried for Adafruit Industries
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
import board
|
|
import digitalio
|
|
|
|
try:
|
|
from audiocore import WaveFile
|
|
except ImportError:
|
|
from audioio import WaveFile
|
|
|
|
try:
|
|
from audioio import AudioOut
|
|
except ImportError:
|
|
try:
|
|
from audiopwmio import PWMAudioOut as AudioOut
|
|
except ImportError:
|
|
pass # not always supported by every board!
|
|
|
|
# Enable the speaker
|
|
spkrenable = digitalio.DigitalInOut(board.SPEAKER_ENABLE)
|
|
spkrenable.direction = digitalio.Direction.OUTPUT
|
|
spkrenable.value = True
|
|
|
|
# Make the 2 input buttons
|
|
buttonA = digitalio.DigitalInOut(board.BUTTON_A)
|
|
buttonA.direction = digitalio.Direction.INPUT
|
|
buttonA.pull = digitalio.Pull.DOWN
|
|
|
|
buttonB = digitalio.DigitalInOut(board.BUTTON_B)
|
|
buttonB.direction = digitalio.Direction.INPUT
|
|
buttonB.pull = digitalio.Pull.DOWN
|
|
|
|
# The two files assigned to buttons A & B
|
|
audiofiles = ["rimshot.wav", "laugh.wav"]
|
|
|
|
|
|
def play_file(filename):
|
|
print("Playing file: " + filename)
|
|
wave_file = open(filename, "rb")
|
|
with WaveFile(wave_file) as wave:
|
|
with AudioOut(board.SPEAKER) as audio:
|
|
audio.play(wave)
|
|
while audio.playing:
|
|
pass
|
|
print("Finished")
|
|
|
|
|
|
while True:
|
|
if buttonA.value:
|
|
play_file(audiofiles[0])
|
|
if buttonB.value:
|
|
play_file(audiofiles[1])
|