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