@gjsify/webaudio 0.18.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./_virtual/_rolldown/runtime.js";import{AudioNode as e}from"./audio-node.js";import{AudioParam as t}from"./audio-param.js";import{GstPlayer as n}from"./gst-player.js";import{GainNode as r}from"./gain-node.js";var AudioBufferSourceNode=class extends e{buffer=null;loop=!1;loopStart=0;loopEnd=0;playbackRate;onended=null;_player=null;_started=!1;constructor(){super(0,1),this.playbackRate=new t(1,.0625,16)}start(e=0,t=0,r){if(this._started)throw new DOMException(`AudioBufferSourceNode can only be started once`,`InvalidStateError`);if(this._started=!0,!this.buffer)return;let i=this._findGainNode(),a=i?i.gain.value:1;this._player=new n({audioBuffer:this.buffer,volume:a,loop:this.loop,offset:t,duration:r,playbackRate:this.playbackRate.value,onEnded:()=>{i&&i._activePlayers.delete(this._player),this._player=null,this.onended?.()}}),i&&this._player&&i._activePlayers.add(this._player)}stop(e=0){this._player&&this._player.stop()}_findGainNode(){for(let e of this._outputs){if(e instanceof r)return e;for(let t of e._outputs)if(t instanceof r)return t}return null}};export{AudioBufferSourceNode};
|
|
1
|
+
import"./_virtual/_rolldown/runtime.js";import{AudioNode as e}from"./audio-node.js";import{AudioParam as t}from"./audio-param.js";import{GstPlayer as n}from"./gst-player.js";import{GainNode as r}from"./gain-node.js";var AudioBufferSourceNode=class extends e{buffer=null;loop=!1;loopStart=0;loopEnd=0;playbackRate;onended=null;_player=null;_started=!1;constructor(){super(0,1),this.playbackRate=new t(1,.0625,16)}start(e=0,t=0,r){if(this._started)throw new DOMException(`AudioBufferSourceNode can only be started once`,`InvalidStateError`);if(this._started=!0,!this.buffer)return;let i=this._findGainNode(),a=i?i.gain.value:1;try{this._player=new n({audioBuffer:this.buffer,volume:a,loop:this.loop,offset:t,duration:r,playbackRate:this.playbackRate.value,onEnded:()=>{i&&i._activePlayers.delete(this._player),this._player=null,this.onended?.()}})}catch(e){console.warn(`[webaudio] AudioBufferSourceNode.start: GStreamer playback unavailable, continuing silent:`,e),this._player=null,queueMicrotask(()=>this.onended?.());return}i&&this._player&&i._activePlayers.add(this._player)}stop(e=0){this._player&&this._player.stop()}_findGainNode(){for(let e of this._outputs){if(e instanceof r)return e;for(let t of e._outputs)if(t instanceof r)return t}return null}};export{AudioBufferSourceNode};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gjsify/webaudio",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "Web Audio API for GJS using GStreamer as audio backend",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "lib/esm/index.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"audio-api"
|
|
43
43
|
],
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@gjsify/dom-events": "^0.
|
|
45
|
+
"@gjsify/dom-events": "^0.19.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@girs/gjs": "^4.1.0",
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
"@girs/gstapp-1.0": "^4.1.0",
|
|
52
52
|
"@girs/gstaudio-1.0": "^4.1.0",
|
|
53
53
|
"@girs/gstbase-1.0": "^4.1.0",
|
|
54
|
-
"@gjsify/cli": "^0.
|
|
55
|
-
"@gjsify/unit": "^0.
|
|
54
|
+
"@gjsify/cli": "^0.19.0",
|
|
55
|
+
"@gjsify/unit": "^0.19.0",
|
|
56
56
|
"@types/node": "^25.9.2",
|
|
57
57
|
"typescript": "^6.0.3"
|
|
58
58
|
},
|