summaryrefslogtreecommitdiff
path: root/tests/circuitpython-manual/audiopwmio/wavefile_pause_resume.py
blob: 27912d321795deda81f3a330ab540fb4bbc16af4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import audiocore
import audiopwmio
import board
import digitalio
import time
import math
import os

trigger = digitalio.DigitalInOut(board.D4)
trigger.switch_to_output(True)

sample_prefix = "jeplayer-splash"

samples = []
for fn in os.listdir("/"):
    if fn.startswith(sample_prefix):
        samples.append(fn)

dac = audiopwmio.PWMAudioOut(left_channel=board.D12, right_channel=board.D13)
for filename in samples:
    print("playing", filename)
    with open(filename, "rb") as sample_file:
        try:
            sample = audiocore.WaveFile(sample_file)
        except OSError as e:
            print(e)
            continue
        trigger.value = False
        dac.play(sample)
        while dac.playing:
            time.sleep(0.1)
            dac.pause()
            time.sleep(0.1)
            dac.resume()
        trigger.value = True
    time.sleep(0.1)
    print()

print("done")