blob: 3403191398d1688ea64e715f614b90d2e4b65a59 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// https://w3c.github.io/mediacapture-record/#mediarecorder-api
enum RecordingState { "inactive", "recording", "paused" };
[
ActiveScriptWrappable,
Exposed=Window
] interface MediaRecorder : EventTarget {
[CallWith=ExecutionContext, RaisesException] constructor(MediaStream stream, optional MediaRecorderOptions options = {});
readonly attribute MediaStream stream;
[HighEntropy=Direct, MeasureAs=MediaRecorder_MimeType] readonly attribute DOMString mimeType;
readonly attribute RecordingState state;
attribute EventHandler onstart;
attribute EventHandler onstop;
attribute EventHandler ondataavailable;
attribute EventHandler onpause;
attribute EventHandler onresume;
attribute EventHandler onerror;
[HighEntropy=Direct, MeasureAs=MediaRecorder_VideoBitsPerSecond] readonly attribute unsigned long videoBitsPerSecond;
[HighEntropy=Direct, MeasureAs=MediaRecorder_AudioBitsPerSecond] readonly attribute unsigned long audioBitsPerSecond;
[RaisesException, Measure] void start(optional long timeslice);
[RaisesException] void stop();
[RaisesException] void pause();
[RaisesException] void resume();
[RaisesException] void requestData();
[CallWith=ExecutionContext] static boolean isTypeSupported(DOMString type);
};