a
    ýÞ{bg  ã                   @   s   d Z G dd„ dƒZdS )a/  
Audio
=====

The :class:`Audio` is used for recording audio.

Default path for recording is set in platform implementation.

.. note::
        On Android the `RECORD_AUDIO`, `WAKE_LOCK` permissions are needed.

Simple Examples
---------------

To get the file path::

    >>> audio.file_path
    '/sdcard/testrecorder.3gp'

To set the file path::

    >>> import os
    >>> current_list = os.listdir('.')
    ['/sdcard/testrecorder.3gp', '/sdcard/testrecorder1.3gp',
    '/sdcard/testrecorder2.3gp', '/sdcard/testrecorder3.3gp']
    >>> file_path = current_list[2]
    >>> audio.file_path = file_path

To start recording::

    >>> from plyer import audio
    >>> audio.start()

To stop recording::

    >>> audio.stop()

To play recording::

    >>> audio.play()

Supported Platforms
-------------------
Android

c                       st   e Zd ZdZdZdZd‡ fdd„	Zdd„ Zd	d
„ Zdd„ Z	e
dd„ ƒZejdd„ ƒZdd„ Zdd„ Zdd„ Z‡  ZS )ÚAudioz
    Audio facade.
    ÚreadyÚ Nc                    s   t ƒ  ¡  |p| j| _d S ©N)ÚsuperÚ__init__Ú
_file_path)ÚselfÚ	file_path©Ú	__class__© úc/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/plyer/facades/audio.pyr   9   s    
zAudio.__init__c                 C   s   |   ¡  d| _dS )z
        Start record.
        Z	recordingN)Ú_startÚstate©r   r   r   r   Ústart=   s    zAudio.startc                 C   s   |   ¡  d| _dS )z
        Stop record.
        r   N)Ú_stopr   r   r   r   r   ÚstopD   s    z
Audio.stopc                 C   s   |   ¡  d| _dS )z)
        Play current recording.
        ZplayingN)Ú_playr   r   r   r   r   ÚplayK   s    z
Audio.playc                 C   s   | j S r   )r   r   r   r   r   r	   R   s    zAudio.file_pathc                 C   s   t |tƒsJ dƒ‚|| _dS )z,
        Location of the recording.
        z"Location must be string or unicodeN)Ú
isinstanceÚstrr   )r   Úlocationr   r   r   r	   V   s    c                 C   s
   t ƒ ‚d S r   ©ÚNotImplementedErrorr   r   r   r   r   `   s    zAudio._startc                 C   s
   t ƒ ‚d S r   r   r   r   r   r   r   c   s    zAudio._stopc                 C   s
   t ƒ ‚d S r   r   r   r   r   r   r   f   s    zAudio._play)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   Úpropertyr	   Úsetterr   r   r   Ú__classcell__r   r   r
   r   r   1   s   

	r   N)r   r   r   r   r   r   Ú<module>   s   0