@@ -6,8 +6,7 @@ package org.scalajs.dom.experimental.mediastream
66import scala .scalajs .js
77import scala .scalajs .js .|
88import scala .scalajs .js .annotation ._
9-
10- import org .scalajs .dom .raw .{DOMError , Event , EventTarget }
9+ import org .scalajs .dom .raw .{DOMError , Event , EventTarget , TimeRanges }
1110
1211/**
1312 * The MediaStream
@@ -647,3 +646,178 @@ trait MediaTrackSupportedConstraints extends js.Object {
647646 var deviceId : js.UndefOr [Boolean ] = js.undefined
648647 var groupId : js.UndefOr [Boolean ] = js.undefined
649648}
649+
650+ /**
651+ * Represents a source of media data for an HTMLMediaElement object.
652+ *
653+ * A MediaSource object can be attached to a HTMLMediaElement to be played in the user agent.
654+ */
655+ @ js.native
656+ @ JSGlobal
657+ class MediaSource extends EventTarget {
658+ def sourceBueffers : SourceBufferList = js.native
659+ def activeSourceBuffers : SourceBufferList = js.native
660+ def readyState : ReadyState = js.native
661+
662+ /**
663+ * Allows the web application to set the presentation duration.
664+ *
665+ * The duration is initially set to NaN when the MediaSource object is created.
666+ */
667+ var duration : Double = js.native
668+
669+ var onsourceopen : js.Function1 [Event , Any ] = js.native
670+ var onsourceended : js.Function1 [Event , Any ] = js.native
671+ var onsourceclose : js.Function1 [Event , Any ] = js.native
672+
673+ def addSourceBuffer (bufferType : String ): SourceBuffer = js.native
674+ def removeSourceBuffer (sourceBuffer : SourceBuffer ): Unit = js.native
675+ def endOfStream (error : js.UndefOr [EndOfStreamError ] = ??? ): Unit = js.native
676+ def setLiveSeekableRange (start : Double , end : Double ): Unit = js.native
677+ def clearLiveSeekableRange (): Unit = js.native
678+ }
679+
680+ @ js.native
681+ @ JSGlobalScope
682+ object MediaSource extends js.Object {
683+ def isTypeSupported (mediaType : String ): Boolean = js.native
684+ }
685+
686+ @ js.native
687+ trait SourceBufferList extends EventTarget {
688+ def length : Double = js.native
689+
690+ @ JSBracketAccess
691+ def apply (index : Double ): SourceBuffer = js.native
692+
693+ var onaddsourcebuffer : js.Function1 [Event , Any ] = js.native
694+ var onremovesourcebuffer : js.Function1 [Event , Any ] = js.native
695+ }
696+
697+ @ js.native
698+ trait SourceBuffer extends EventTarget {
699+ var mode : AppendMode = js.native
700+ var timestampOffset : Double = js.native
701+
702+ def updating : Boolean = js.native
703+ def buffered : TimeRanges = js.native
704+
705+ def audioTracks : AudioTrackList = js.native
706+ def videoTracks : VideoTrackList = js.native
707+ def textTracks : TextTrackList = js.native
708+
709+ var appendWindowStart : Double = js.native
710+ var appendWindowEnd : Double = js.native
711+
712+ var onupdatestart : js.Function1 [Event , Any ] = js.native
713+ var onupdate : js.Function1 [Event , Any ] = js.native
714+ var onupdateend : js.Function1 [Event , Any ] = js.native
715+ var onerror : js.Function1 [Event , Any ] = js.native
716+ var onabort : js.Function1 [Event , Any ] = js.native
717+
718+ def appendBuffer (data : BufferSource ): Unit = js.native
719+ def abort (): Unit = js.native
720+ def remove (start : Double , end : Double ): Unit = js.native
721+ }
722+
723+ @ js.native
724+ trait AudioTrackList extends EventTarget {
725+ def length : Double = js.native
726+
727+ @ JSBracketAccess
728+ def apply (index : Double ): AudioTrack = js.native
729+
730+ def getTrackById (id : String ): js.UndefOr [AudioTrack ] = js.native
731+
732+ var onchange : js.Function1 [Event , Any ] = js.native
733+ var onaddtrack : js.Function1 [Event , Any ] = js.native
734+ var onremovetrack : js.Function1 [Event , Any ] = js.native
735+ }
736+
737+ @ js.native
738+ trait AudioTrack extends js.Object {
739+ val id : String = js.native
740+ val kind : String = js.native
741+ val label : String = js.native
742+ val language : String = js.native
743+ var enabled : Boolean = js.native
744+ }
745+
746+ @ js.native
747+ trait VideoTrackList extends EventTarget {
748+ def length : Double = js.native
749+
750+ @ JSBracketAccess
751+ def apply (index : Double ): VideoTrack = js.native
752+
753+ def getTrackById (id : String ): js.UndefOr [VideoTrack ] = js.native
754+
755+ def selectedIndex : Double = js.native
756+
757+ var onchange : js.Function1 [Event , Any ] = js.native
758+ var onaddtrack : js.Function1 [Event , Any ] = js.native
759+ var onremovetrack : js.Function1 [Event , Any ] = js.native
760+ }
761+ @ js.native
762+ trait VideoTrack extends js.Object {
763+ val id : String = js.native
764+ val kind : String = js.native
765+ val label : String = js.native
766+ val language : String = js.native
767+ var selected : Boolean = js.native
768+ }
769+ @ js.native
770+ trait TextTrackList extends EventTarget {
771+
772+ def length : Double = js.native
773+
774+ @ JSBracketAccess
775+ def apply (index : Double ): VideoTrack = js.native
776+
777+ def getTrackById (id : String ): js.UndefOr [TextTrack ] = js.native;
778+
779+ var onchange : js.Function1 [Event , Any ] = js.native
780+ var onaddtrack : js.Function1 [Event , Any ] = js.native
781+ var onremovetrack : js.Function1 [Event , Any ] = js.native
782+ }
783+ @ js.native
784+ trait TextTrack extends EventTarget {
785+ val id : String = js.native
786+ val kind : String = js.native
787+ val label : String = js.native
788+ val language : String = js.native
789+ val inBandMetadataTrackDispatchType : String = js.native
790+
791+ var mode : TextTrackMode = js.native
792+
793+ def cues : js.UndefOr [TextTrackCueList ] = js.native
794+ def activeCues : js.UndefOr [TextTrackCueList ] = js.native
795+
796+ def addCue (cue : TextTrackCue ): Unit = js.native
797+ def removeCue (cue : TextTrackCue ): Unit = js.native
798+
799+ var oncuechange : js.Function1 [Event , Any ] = js.native
800+ }
801+
802+ @ js.native
803+ trait TextTrackCueList extends js.Object {
804+ def length : Double = js.native
805+
806+ @ JSBracketAccess
807+ def apply (index : Double ): TextTrackCue = js.native
808+
809+ def getCueById (id : String ): js.UndefOr [TextTrackCue ] = js.native;
810+ }
811+
812+ @ js.native
813+ trait TextTrackCue extends EventTarget {
814+ def track : js.UndefOr [TextTrack ] = js.native
815+
816+ var id : String = js.native
817+ var startTime : Double = js.native
818+ var endTime : Double = js.native
819+ var pauseOnExit : Boolean = js.native
820+
821+ var onenter : js.Function1 [Event , Any ] = js.native
822+ var onexit : js.Function1 [Event , Any ] = js.native
823+ }
0 commit comments