def play(files: Iterable[str], device: str) -> None: """Load and play files on the given device.""" with Device(device) as dev, Context(dev) as ctx: print('Opened', dev.name) ctx.message_handler = EventHandler() for filename in files: try: buffer = Buffer(filename) except RuntimeError: stderr.write(f'Failed to open file: {filename}\n') continue with buffer: src = buffer.play() while src.playing: print(f' {pretty_time(src.offset_seconds)} /' f' {pretty_time(buffer.length_seconds)}', end='\r', flush=True) sleep(PERIOD) print() ctx.update()
def play(files: Iterable[str], device: str) -> None: """Load and play files on the given device.""" with Device(device) as dev, Context(dev): print('Opened', dev.name) for filename in files: try: buffer = Buffer(filename) except RuntimeError: stderr.write(f'Failed to open file: {filename}\n') continue with buffer, buffer.play() as src: print(f'Playing {filename} ({buffer.sample_type},', f'{buffer.channel_config}, {buffer.frequency} Hz)') while src.playing: print( f' {pretty_time(src.offset_seconds)} /' f' {pretty_time(buffer.length_seconds)}', end='\r', flush=True) sleep(PERIOD) print()