kopia lustrzana https://github.com/peterhinch/micropython-micro-gui
Various tweaks to audio demo.
rodzic
fae4c5edc9
commit
dcd907c69b
|
@ -173,7 +173,8 @@ class BaseScreen(Screen):
|
||||||
Screen.change(SelectScreen, args=[wri,])
|
Screen.change(SelectScreen, args=[wri,])
|
||||||
|
|
||||||
def play_album(self):
|
def play_album(self):
|
||||||
self.reg_task(asyncio.create_task(self.album_task()))
|
if not self.playing:
|
||||||
|
self.reg_task(asyncio.create_task(self.album_task()))
|
||||||
|
|
||||||
def after_open(self):
|
def after_open(self):
|
||||||
self.songs = SelectScreen.songs
|
self.songs = SelectScreen.songs
|
||||||
|
@ -185,17 +186,12 @@ class BaseScreen(Screen):
|
||||||
|
|
||||||
def show_song(self):
|
def show_song(self):
|
||||||
song = self.songs[self.song_idx]
|
song = self.songs[self.song_idx]
|
||||||
print('refresh', song)
|
|
||||||
ns = song.find(SelectScreen.album)
|
ns = song.find(SelectScreen.album)
|
||||||
ne = song[ns:].find('/') + 1
|
ne = song[ns:].find('/') + 1
|
||||||
end = song[ns + ne:].find(".wav")
|
end = song[ns + ne:].find(".wav")
|
||||||
self.lblsong.value(song[ns + ne: ns + ne + end])
|
self.lblsong.value(song[ns + ne: ns + ne + end])
|
||||||
|
|
||||||
async def album_task(self):
|
async def album_task(self):
|
||||||
# Must ensure that only one instance of album_task is running
|
|
||||||
self.stop_play = True # Stop the running instance
|
|
||||||
while self.playing: # Wait for it to happen
|
|
||||||
await asyncio.sleep_ms(200)
|
|
||||||
self.playing = True # Prevent other instances
|
self.playing = True # Prevent other instances
|
||||||
self.stop_play = False
|
self.stop_play = False
|
||||||
# Leave paused status unchanged
|
# Leave paused status unchanged
|
||||||
|
@ -206,6 +202,9 @@ class BaseScreen(Screen):
|
||||||
if self.stop_play:
|
if self.stop_play:
|
||||||
break # A callback has stopped playback
|
break # A callback has stopped playback
|
||||||
self.song_idx += 1
|
self.song_idx += 1
|
||||||
|
else:
|
||||||
|
self.song_idx = 0 # Played to completion.
|
||||||
|
self.show_song()
|
||||||
self.playing = False
|
self.playing = False
|
||||||
|
|
||||||
# Open and play a binary wav file
|
# Open and play a binary wav file
|
||||||
|
|
Ładowanie…
Reference in New Issue