mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-08 09:09:43 +00:00
LibWeb: Add AudioContext.createMediaElementSource()
factory method
This commit is contained in:
parent
aa39aa50f7
commit
31532e36a8
Notes:
github-actions[bot]
2025-01-17 19:05:41 +00:00
Author: https://github.com/tcl3
Commit: 31532e36a8
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3266
4 changed files with 18 additions and 5 deletions
|
@ -342,4 +342,12 @@ bool AudioContext::start_rendering_audio_graph()
|
||||||
return render_result;
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <LibWeb/Bindings/AudioContextPrototype.h>
|
#include <LibWeb/Bindings/AudioContextPrototype.h>
|
||||||
#include <LibWeb/HighResolutionTime/DOMHighResTimeStamp.h>
|
#include <LibWeb/HighResolutionTime/DOMHighResTimeStamp.h>
|
||||||
#include <LibWeb/WebAudio/BaseAudioContext.h>
|
#include <LibWeb/WebAudio/BaseAudioContext.h>
|
||||||
|
#include <LibWeb/WebAudio/MediaElementAudioSourceNode.h>
|
||||||
|
|
||||||
namespace Web::WebAudio {
|
namespace Web::WebAudio {
|
||||||
|
|
||||||
|
@ -39,6 +40,8 @@ public:
|
||||||
WebIDL::ExceptionOr<GC::Ref<WebIDL::Promise>> suspend();
|
WebIDL::ExceptionOr<GC::Ref<WebIDL::Promise>> suspend();
|
||||||
WebIDL::ExceptionOr<GC::Ref<WebIDL::Promise>> close();
|
WebIDL::ExceptionOr<GC::Ref<WebIDL::Promise>> close();
|
||||||
|
|
||||||
|
WebIDL::ExceptionOr<GC::Ref<MediaElementAudioSourceNode>> create_media_element_source(GC::Ptr<HTML::HTMLMediaElement>);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit AudioContext(JS::Realm& realm)
|
explicit AudioContext(JS::Realm& realm)
|
||||||
: BaseAudioContext(realm)
|
: BaseAudioContext(realm)
|
||||||
|
|
|
@ -13,7 +13,7 @@ interface AudioContext : BaseAudioContext {
|
||||||
Promise<undefined> resume ();
|
Promise<undefined> resume ();
|
||||||
Promise<undefined> suspend ();
|
Promise<undefined> suspend ();
|
||||||
Promise<undefined> close ();
|
Promise<undefined> close ();
|
||||||
[FIXME] MediaElementAudioSourceNode createMediaElementSource (HTMLMediaElement mediaElement);
|
MediaElementAudioSourceNode createMediaElementSource (HTMLMediaElement mediaElement);
|
||||||
[FIXME] MediaStreamAudioSourceNode createMediaStreamSource (MediaStream mediaStream);
|
[FIXME] MediaStreamAudioSourceNode createMediaStreamSource (MediaStream mediaStream);
|
||||||
[FIXME] MediaStreamTrackAudioSourceNode createMediaStreamTrackSource (MediaStreamTrack mediaStreamTrack);
|
[FIXME] MediaStreamTrackAudioSourceNode createMediaStreamTrackSource (MediaStreamTrack mediaStreamTrack);
|
||||||
[FIXME] MediaStreamAudioDestinationNode createMediaStreamDestination ();
|
[FIXME] MediaStreamAudioDestinationNode createMediaStreamDestination ();
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
Harness status: OK
|
Harness status: OK
|
||||||
|
|
||||||
Found 304 tests
|
Found 306 tests
|
||||||
|
|
||||||
294 Pass
|
297 Pass
|
||||||
10 Fail
|
9 Fail
|
||||||
Pass # AUDIT TASK RUNNER STARTED.
|
Pass # AUDIT TASK RUNNER STARTED.
|
||||||
Pass Executing "initialize"
|
Pass Executing "initialize"
|
||||||
Pass Executing "Offline createGain"
|
Pass Executing "Offline createGain"
|
||||||
|
@ -24,7 +24,7 @@ Fail Executing "Offline createScriptProcessor"
|
||||||
Pass Executing "Offline createPeriodicWave"
|
Pass Executing "Offline createPeriodicWave"
|
||||||
Pass Executing "Offline createChannelSplitter"
|
Pass Executing "Offline createChannelSplitter"
|
||||||
Pass Executing "Offline createChannelMerger"
|
Pass Executing "Offline createChannelMerger"
|
||||||
Fail Executing "Online createMediaElementSource"
|
Pass Executing "Online createMediaElementSource"
|
||||||
Fail Executing "Online createMediaStreamDestination"
|
Fail Executing "Online createMediaStreamDestination"
|
||||||
Pass Executing "AudioListener"
|
Pass Executing "AudioListener"
|
||||||
Pass Executing "verifyTests"
|
Pass Executing "verifyTests"
|
||||||
|
@ -243,6 +243,8 @@ Pass > [Offline createChannelMerger]
|
||||||
Pass AudioNode has no AudioParams as expected
|
Pass AudioNode has no AudioParams as expected
|
||||||
Pass < [Offline createChannelMerger] All assertions passed. (total 1 assertions)
|
Pass < [Offline createChannelMerger] All assertions passed. (total 1 assertions)
|
||||||
Pass > [Online createMediaElementSource]
|
Pass > [Online createMediaElementSource]
|
||||||
|
Pass MediaElementAudioSourceNode has no AudioParams as expected
|
||||||
|
Pass < [Online createMediaElementSource] All assertions passed. (total 1 assertions)
|
||||||
Pass > [Online createMediaStreamDestination]
|
Pass > [Online createMediaStreamDestination]
|
||||||
Pass > [AudioListener]
|
Pass > [AudioListener]
|
||||||
Pass AudioListener.positionX.minValue is equal to -3.4028234663852886e+38.
|
Pass AudioListener.positionX.minValue is equal to -3.4028234663852886e+38.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue