a
    mJh                     @   sL   d Z ddlZddlmZ ddlmZmZ dd Zdd	 Zd
d Z	dd Z
dS )a$  
Support for playing AudioSegments. Pyaudio will be used if it's installed,
otherwise will fallback to ffplay. Pyaudio is a *much* nicer solution, but
is tricky to install. See my notes on installing pyaudio in a virtualenv (on
OSX 10.10): https://gist.github.com/jiaaro/9767512210a1d80a8a0d
    N)NamedTemporaryFile   )get_player_namemake_chunksc                 C   sZ   t  }tddd4}| |jd t|ddd|jg W d    n1 sL0    Y  d S )Nzw+bz.wav)suffixZwavz-nodispz	-autoexitz-hide_banner)r   r   Zexportname
subprocesscall)segZPLAYERf r   @/var/www/shaz/venv/lib/python3.9/site-packages/pydub/playback.py_play_with_ffplay   s    r   c                 C   s   dd l }| }|j|| j| j| jdd}z8t| dD ]}||j	 q:W |
  |  |  n|
  |  |  0 d S )Nr   T)formatchannelsZrateoutputi  )pyaudioZPyAudioopenZget_format_from_widthsample_widthr   
frame_rater   write_dataZstop_streamclose	terminate)r
   r   pstreamchunkr   r   r   _play_with_pyaudio   s     
r   c                 C   s"   dd l }|j| j| j| j| jdS )Nr   )Znum_channelsZbytes_per_sampleZsample_rate)simpleaudioZplay_bufferraw_datar   r   r   )r
   r   r   r   r   _play_with_simpleaudio)   s    r    c                 C   s~   z4t | }z|  W n ty0   |  Y n0 W n tyF   Y n0 d S zt|  W d S  tyl   Y n0 d S t|  d S )N)r    Z	wait_doneKeyboardInterruptstopImportErrorr   r   )Zaudio_segmentZplaybackr   r   r   play3   s     r$   )__doc__r   tempfiler   utilsr   r   r   r   r    r$   r   r   r   r   <module>   s   
