MediaRecorder.onerror - Web APIs 编辑
The MediaRecorder
interface's onerror
event handler is called by the MediaStream Recording API when an error occurs. You can provide an event handler to deal with errors that occur while creating or using a media recorder. The error object is of type MediaRecorderErrorEvent
, and its error
property contains a DOMException
object that describes the error that occurred.
Syntax
MediaRecorder.onerror = errorHandlerFunction;
Value
A function to be called whenever an error occurs during the recorder's lifetime. In addition to other general errors that might occur, the following errors are specifically possible when using the MediaStream Recording API; to determine which occurred, check the value of MediaRecorderErrorEvent.error.name
.
InvalidStateError
- An attempt was made to stop or pause or an inactive recorder, start or resume an active recorder, or otherwise manipulate the
MediaRecorder
while in the wrong state. This exception can also occur when a request is made on a source that has been deleted or removed. SecurityError
- The
MediaStream
is configured to disallow recording. This may be the case, for example, with sources obtained usinggetUserMedia()
when the user denies permission to use an input device. This also happens when aMediaStreamTrack
within the stream is marked asisolated
due to thepeerIdentity
constraint on the source stream. NotSupportedError
- An attempt was made to instantiate a
MediaRecorder
using a MIME type that isn't supported on the user's device; one or more of the requested container, codecs, or profiles as well as other information may be invalid. InvalidModificationError
- The number of tracks on the stream being recorded has changed. You can't add or remove tracks while recording media.
UnknownError
- An non-security related error occurred that cannot otherwise be categorized. Recording stops, the
MediaRecorder
'sstate
becomesinactive
, one lastdataavailable
event is sent to theMediaRecorder
with the remaining received data, and finally astop
event is sent.
These errors may occur either directly because of a call to a MediaRecorder
method, or indirectly due to a problem arising during the recording process.
Example
This example creates a new MediaRecorder
instance and starts recording using the user agent's default media format. It returns either the MediaRecorder
or the name of the error that occurred if any exceptions are thrown during the setup process.
function recordStream(stream) {
let recorder = null;
let bufferList = [];
try {
recorder = new MediaRecorder(stream);
} catch(err) {
return err.name; /* return the error name */
}
recorder.ondataavailable = function(event) {
bufferList.push(event.data);
};
recorder.onerror = function(event) {
let error = event.error;
switch(error.name) {
case InvalidStateError:
showNotification("You can't record the video right " +
"now. Try again later.");
break;
case SecurityError:
showNotification("Recording the specified source " +
"is not allowed due to security " +
"restrictions.");
break;
default:
showNotification("A problem occurred while trying " +
"to record the video.");
break;
}
};
/* this would be a good place to create a Worker to handle
writing the buffers to disk periodically */
recorder.start(100); /* 100ms time slices per buffer */
return recorder;
}
Specifications
Specification | Status | Comment |
---|---|---|
MediaStream Recording The definition of 'MediaRecorder.onerror' in that specification. | Working Draft | Initial definition |
Browser compatibility
BCD tables only load in the browser
See also
- Using the MediaRecorder API
- Web Dictaphone: MediaRecorder + getUserMedia + Web Audio API visualization demo, by Chris Mills (source on Github.)
- simpl.info MediaStream Recording demo, by Sam Dutton.
Navigator.getUserMedia
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论