audio_handler.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import pyaudio
  4. class AudioHandler:
  5. def __init__(self, socket):
  6. self.socket = socket
  7. def play_audio_stream(self):
  8. # Initialize PyAudio
  9. p = pyaudio.PyAudio()
  10. # Define stream parameters
  11. stream_format = pyaudio.paInt16
  12. channels = 2
  13. rate = 44100
  14. chunk_size = 1024 * 32
  15. # Open an audio stream
  16. stream = p.open(format=stream_format,
  17. channels=channels,
  18. rate=rate,
  19. output=True,
  20. frames_per_buffer=chunk_size)
  21. try:
  22. while True:
  23. data = self.socket.recv(chunk_size)
  24. if not data:
  25. break
  26. stream.write(data)
  27. except Exception as e:
  28. print(f"Error playing audio stream: {e}")
  29. finally:
  30. stream.stop_stream()
  31. stream.close()
  32. p.terminate()
  33. def start(self):
  34. self.play_audio_stream()