|
|
| Line 49: |
Line 49: |
| *Solution: if a (non-live) stream feeds into a blocking mixer, then it itself gets blocked. This has the same effect as the entire graph of (non-live) connected streams blocking as a unit. | | *Solution: if a (non-live) stream feeds into a blocking mixer, then it itself gets blocked. This has the same effect as the entire graph of (non-live) connected streams blocking as a unit. |
|
| |
|
| ==== <mediaresource> element ====
| |
|
| |
| interface HTMLMediaResourceElement {
| |
| attribute DOMString src;
| |
| attribute DOMString preload;
| |
|
| |
| // If set, the resource repeats indefinitely.
| |
| attribute boolean loop;
| |
|
| |
| // Start stream at this offset in the resource (after looping, if enabled).
| |
| attribute double currentTime;
| |
|
| |
| // End the stream at this offset in the resource (after looping, if enabled).
| |
| attribute double endTime;
| |
|
| |
| // Add this much silence to the start of the stream.
| |
| attribute double delay;
| |
|
| |
| attribute double playbackRate;
| |
| void load();
| |
|
| |
| readonly attribute DOMString currentSrc;
| |
| readonly attribute unsigned short networkState;
| |
| readonly attribute TimeRanges buffered;
| |
| DOMString canPlayType(in DOMString type);
| |
| readonly attribute MediaError error;
| |
| readonly attribute boolean seeking;
| |
| readonly attribute double duration;
| |
|
| |
| // Returns a new stream of the resource played back starting at currentTime using current
| |
| // element state (stream contents do not change in response to future changes in the element)
| |
| Stream startStream();
| |
| };
| |
|
| |
| <mediaresource> elements can have <source> children.
| |
|
| |
| Is this needed? Maybe to allow reliable synchronization/easy use of canned samples.
| |
|
| |
| I'm not really sure how much API this element needs.
| |
|
| |
|
| ==== Media elements ==== | | ==== Media elements ==== |