LibWeb: Add AudioContext.createMediaElementSource() factory method

This commit is contained in:
Tim Ledbetter 2025-01-15 23:08:23 +00:00 committed by Luke Wilde
commit 31532e36a8
Notes: github-actions[bot] 2025-01-17 19:05:41 +00:00
4 changed files with 18 additions and 5 deletions

View file

@ -342,4 +342,12 @@ bool AudioContext::start_rendering_audio_graph()
return render_result;
}
// https://webaudio.github.io/web-audio-api/#dom-audiocontext-createmediaelementsource
WebIDL::ExceptionOr<GC::Ref<MediaElementAudioSourceNode>> AudioContext::create_media_element_source(GC::Ptr<HTML::HTMLMediaElement> media_element)
{
MediaElementAudioSourceOptions options;
options.media_element = media_element;
return MediaElementAudioSourceNode::create(realm(), *this, options);
}
}

View file

@ -9,6 +9,7 @@
#include <LibWeb/Bindings/AudioContextPrototype.h>
#include <LibWeb/HighResolutionTime/DOMHighResTimeStamp.h>
#include <LibWeb/WebAudio/BaseAudioContext.h>
#include <LibWeb/WebAudio/MediaElementAudioSourceNode.h>
namespace Web::WebAudio {
@ -39,6 +40,8 @@ public:
WebIDL::ExceptionOr<GC::Ref<WebIDL::Promise>> suspend();
WebIDL::ExceptionOr<GC::Ref<WebIDL::Promise>> close();
WebIDL::ExceptionOr<GC::Ref<MediaElementAudioSourceNode>> create_media_element_source(GC::Ptr<HTML::HTMLMediaElement>);
private:
explicit AudioContext(JS::Realm& realm)
: BaseAudioContext(realm)

View file

@ -13,7 +13,7 @@ interface AudioContext : BaseAudioContext {
Promise<undefined> resume ();
Promise<undefined> suspend ();
Promise<undefined> close ();
[FIXME] MediaElementAudioSourceNode createMediaElementSource (HTMLMediaElement mediaElement);
MediaElementAudioSourceNode createMediaElementSource (HTMLMediaElement mediaElement);
[FIXME] MediaStreamAudioSourceNode createMediaStreamSource (MediaStream mediaStream);
[FIXME] MediaStreamTrackAudioSourceNode createMediaStreamTrackSource (MediaStreamTrack mediaStreamTrack);
[FIXME] MediaStreamAudioDestinationNode createMediaStreamDestination ();