t = threading.Thread(target = forever_receive_from_udp) t.setDaemon(True) t.start() playback_stream = OutputStream(samplerate=8000, blocksize=800, dtype='int32', channels=1) playback_stream.start() playback_queue = Queue() def forever_write_to_output(): while True: try: playback_stream.write(playback_queue.get()) except: traceback.print_exc() t = threading.Thread(target = forever_write_to_output) t.setDaemon(True) t.start() # now write something which receives udp packets and sticks # them into the playback queue while True: try: time.sleep(1) except: break playback_stream.stop()
playback_stream = OutputStream(samplerate=8000, blocksize=800, dtype='int32', channels=1) playback_stream.start() playback_queue = Queue() def forever_write_to_output(): while True: try: playback_stream.write(playback_queue.get()) except: traceback.print_exc() t = threading.Thread(target=forever_write_to_output) t.setDaemon(True) t.start() # now write something which receives udp packets and sticks # them into the playback queue while True: try: time.sleep(1) except: break playback_stream.stop()
play audio frames on callback pysoundcard server which forwards all udp packets from one ip, port to everyone connected to it via udp erasure codes later if time permits ''' from pysoundcard import InputStream, OutputStream, continue_flag import time """Loop back five seconds of audio data.""" output = OutputStream(samplerate=44100, blocksize=16) output.start() def callback(in_data, time_info, status): output.write(in_data*4) return continue_flag s = InputStream(samplerate=44100, blocksize=16, callback=callback) s.start() time.sleep(5) s.stop() output.stop()