AudioContext.idl 1.3 KB

12345678910111213141516171819202122232425262728293031
  1. #import <WebAudio/BaseAudioContext.idl>
  2. // https://www.w3.org/TR/webaudio/#enumdef-audiocontextlatencycategory
  3. enum AudioContextLatencyCategory { "balanced", "interactive", "playback" };
  4. // https://webaudio.github.io/web-audio-api/#AudioContext
  5. [Exposed=Window]
  6. interface AudioContext : BaseAudioContext {
  7. constructor(optional AudioContextOptions contextOptions = {});
  8. readonly attribute double baseLatency;
  9. readonly attribute double outputLatency;
  10. AudioTimestamp getOutputTimestamp ();
  11. Promise<undefined> resume ();
  12. Promise<undefined> suspend ();
  13. Promise<undefined> close ();
  14. // FIXME: MediaElementAudioSourceNode createMediaElementSource (HTMLMediaElement mediaElement);
  15. // FIXME: MediaStreamAudioSourceNode createMediaStreamSource (MediaStream mediaStream);
  16. // FIXME: MediaStreamTrackAudioSourceNode createMediaStreamTrackSource (MediaStreamTrack mediaStreamTrack);
  17. // FIXME: MediaStreamAudioDestinationNode createMediaStreamDestination ();
  18. };
  19. dictionary AudioContextOptions {
  20. AudioContextLatencyCategory latencyHint = "interactive";
  21. float sampleRate;
  22. };
  23. dictionary AudioTimestamp {
  24. double contextTime;
  25. // FIXME: Should be DOMHighResTimeStamp, but DOMHighResTimeStamp doesn't get parsed as a double during codegen
  26. double performanceTime;
  27. };