blob: 3b360eebeda8812f5a6e0acb4e41c0fb3191f56c [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.html#MediaRecorderAPI
enum RecordingStateEnum { "inactive", "recording", "paused" };
[
GarbageCollected,
ActiveDOMObject,
// TODO(mcasas): consider changing |mimeType| to a dictionary with said key, see https://github.com/w3c/mediacapture-record/issues/19
Constructor(MediaStream stream, [TreatUndefinedAs=Missing] optional DOMString mimeType),
ConstructorCallWith=ExecutionContext,
RaisesException=Constructor,
RuntimeEnabled=MediaRecorder
] interface MediaRecorder : EventTarget {
readonly attribute MediaStream stream;
readonly attribute DOMString mimeType;
readonly attribute RecordingStateEnum state;
attribute boolean ignoreMutedMedia;
attribute EventHandler onstart;
attribute EventHandler onstop;
attribute EventHandler ondataavailable;
attribute EventHandler onpause;
attribute EventHandler onresume;
attribute EventHandler onerror;
[RaisesException] void start(optional long timeslice);
[RaisesException] void stop();
[RaisesException] void pause();
[RaisesException] void resume();
[RaisesException] void requestData();
static DOMString canRecordMimeType(DOMString mimeType);
};