Skip to content

Commit 23866d8

Browse files
committed
fix(audio-context): AudioBufferSourceNode playbackRate
1 parent b84978d commit 23866d8

3 files changed

Lines changed: 15 additions & 1 deletion

File tree

packages/audio-context/index.android.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,7 @@ export class AudioScheduledSourceNode extends AudioNode {
420420
}
421421

422422
export class AudioBufferSourceNode extends AudioScheduledSourceNode {
423+
private _playbackRateParam: AudioParam | null = null;
423424
constructor(context: NativeBaseAudioContext, options: { buffer?: AudioBuffer } = {}) {
424425
super(context, AudioContext.getInstance().createBufferSource(context.native, options?.buffer?.native ?? (null as never)));
425426
}
@@ -439,6 +440,12 @@ export class AudioBufferSourceNode extends AudioScheduledSourceNode {
439440
set buffer(v: AudioBuffer | null) {
440441
this.native.setBuffer(v?.native ?? (null as never));
441442
}
443+
444+
get playbackRate(): AudioParam | null {
445+
if (this._playbackRateParam) return this._playbackRateParam;
446+
this._playbackRateParam = new AudioParam(nativeCtor_, this.native.getPlaybackRateParam());
447+
return this._playbackRateParam;
448+
}
442449
}
443450

444451
export class MediaElementAudioSourceNode extends AudioNode {

packages/audio-context/index.ios.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -690,6 +690,7 @@ export class PeriodicWave {
690690
}
691691

692692
export class AudioBufferSourceNode extends AudioScheduledSourceNode {
693+
private _playbackRateParam: AudioParam | null = null;
693694
constructor(context: NativeBaseAudioContext, options: { buffer?: AudioBuffer } = {}) {
694695
const param: NSCAudioBuffer | null = options?.buffer != null ? options.buffer.native : null;
695696
super(context, context.native.createBufferSourceNode(param as never));
@@ -713,6 +714,12 @@ export class AudioBufferSourceNode extends AudioScheduledSourceNode {
713714
set buffer(v: AudioBuffer | null) {
714715
this.native.buffer = v?.native ?? (null as never);
715716
}
717+
718+
get playbackRate(): AudioParam | null {
719+
if (this._playbackRateParam) return this._playbackRateParam;
720+
this._playbackRateParam = new AudioParam(nativeCtor_, this.native.getPlaybackRateParam());
721+
return this._playbackRateParam;
722+
}
716723
}
717724

718725
export class MediaElementAudioSourceNode extends AudioNode {

packages/audio-context/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/audio-context",
3-
"version": "1.1.3",
3+
"version": "1.1.4",
44
"description": "Web Audio API for NativeScript",
55
"main": "index",
66
"types": "index.d.ts",

0 commit comments

Comments
 (0)