AudioRecorder

A AudioRecorder allows you to record audio from almost any stream object, e.g. from:

[1]:
from ipywebrtc import VideoStream, AudioStream, AudioRecorder
[2]:
video = VideoStream.from_url('./Big.Buck.Bunny.mp4')
video
[3]:
recorder = AudioRecorder(stream=video)
recorder
[4]:
video.playing = False
[5]:
recorder.audio
[6]:
recorder.save('example.webm')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-1-3c2e0defaea1> in <module>
----> 1 recorder.save('example.webm')

~/checkouts/readthedocs.org/user_builds/ipywebrtc/conda/latest/lib/python3.6/site-packages/ipywebrtc/webrtc.py in save(self, filename)
    509             filename += '.' + self.format
    510         if len(self.audio.value) == 0:
--> 511             raise ValueError('No data, did you record anything?')
    512         with open(filename, 'wb') as f:
    513             f.write(self.audio.value)

ValueError: No data, did you record anything?
[7]:
from ipywidgets import Audio

example = Audio.from_file('example.webm')
example
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-1-ac3650e27fbd> in <module>
      1 from ipywidgets import Audio
      2
----> 3 example = Audio.from_file('example.webm')
      4 example

~/checkouts/readthedocs.org/user_builds/ipywebrtc/conda/latest/lib/python3.6/site-packages/ipywidgets/widgets/widget_media.py in from_file(cls, filename, **kwargs)
    221     @classmethod
    222     def from_file(cls, filename, **kwargs):
--> 223         return cls._from_file('audio', filename, **kwargs)
    224
    225     def __repr__(self):

~/checkouts/readthedocs.org/user_builds/ipywebrtc/conda/latest/lib/python3.6/site-packages/ipywidgets/widgets/widget_media.py in _from_file(cls, tag, filename, **kwargs)
     42         Returns an `Media` with the value set from the filename.
     43         """
---> 44         value = cls._load_file_value(filename)
     45
     46         if 'format' not in kwargs:

~/checkouts/readthedocs.org/user_builds/ipywebrtc/conda/latest/lib/python3.6/site-packages/ipywidgets/widgets/widget_media.py in _load_file_value(cls, filename)
     93             return filename.read()
     94         else:
---> 95             with open(filename, 'rb') as f:
     96                 return f.read()
     97

FileNotFoundError: [Errno 2] No such file or directory: 'example.webm'
[8]:
audio_stream = AudioStream.from_file('example.webm')
audio_stream
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-1-8a5a850a98be> in <module>
----> 1 audio_stream = AudioStream.from_file('example.webm')
      2 audio_stream

~/checkouts/readthedocs.org/user_builds/ipywebrtc/conda/latest/lib/python3.6/site-packages/ipywebrtc/webrtc.py in from_file(cls, filename, **kwargs)
    214             Extra keyword arguments for `AudioStream`
    215         """
--> 216         audio = Audio.from_file(filename, autoplay=False, controls=False)
    217         return cls(audio=audio, **kwargs)
    218

~/checkouts/readthedocs.org/user_builds/ipywebrtc/conda/latest/lib/python3.6/site-packages/ipywidgets/widgets/widget_media.py in from_file(cls, filename, **kwargs)
    221     @classmethod
    222     def from_file(cls, filename, **kwargs):
--> 223         return cls._from_file('audio', filename, **kwargs)
    224
    225     def __repr__(self):

~/checkouts/readthedocs.org/user_builds/ipywebrtc/conda/latest/lib/python3.6/site-packages/ipywidgets/widgets/widget_media.py in _from_file(cls, tag, filename, **kwargs)
     42         Returns an `Media` with the value set from the filename.
     43         """
---> 44         value = cls._load_file_value(filename)
     45
     46         if 'format' not in kwargs:

~/checkouts/readthedocs.org/user_builds/ipywebrtc/conda/latest/lib/python3.6/site-packages/ipywidgets/widgets/widget_media.py in _load_file_value(cls, filename)
     93             return filename.read()
     94         else:
---> 95             with open(filename, 'rb') as f:
     96                 return f.read()
     97

FileNotFoundError: [Errno 2] No such file or directory: 'example.webm'
[9]:
recorder2 = AudioRecorder(stream=audio_stream)
recorder2
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-fd38b7a59177> in <module>
----> 1 recorder2 = AudioRecorder(stream=audio_stream)
      2 recorder2

NameError: name 'audio_stream' is not defined
[10]:
audio_stream.playing = False
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-b580674f95d1> in <module>
----> 1 audio_stream.playing = False

NameError: name 'audio_stream' is not defined