Skip to content

Commit b2e583b

Browse files
committed
fix(audio-context): decodeAudioData signature
1 parent 7c49249 commit b2e583b

4 files changed

Lines changed: 31 additions & 11 deletions

File tree

packages/audio-context/index.android.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -515,8 +515,8 @@ export class OfflineAudioContext extends BaseAudioContext {
515515
return new AudioBufferSourceNode(this);
516516
}
517517

518-
decodeAudioData(source: string | ArrayBuffer | ArrayBufferView): Promise<AudioBuffer> {
519-
return new Promise((resolve, reject) => {
518+
decodeAudioData(source: string | ArrayBuffer | ArrayBufferView, successCallback?: (buffer: AudioBuffer) => void, errorCallback?: (error: Error) => void): Promise<AudioBuffer> {
519+
const ret = new Promise<AudioBuffer>((resolve, reject) => {
520520
if (typeof source === 'string') {
521521
if (looksLikePath(source)) {
522522
const filePath = normalizeSourcePath(source);
@@ -557,6 +557,11 @@ export class OfflineAudioContext extends BaseAudioContext {
557557
}),
558558
);
559559
});
560+
561+
if (successCallback) ret.then(successCallback);
562+
if (errorCallback) ret.catch(errorCallback);
563+
564+
return ret;
560565
}
561566

562567
startRendering(): Promise<AudioBuffer> {
@@ -674,8 +679,8 @@ export class AudioContext extends BaseAudioContext {
674679
});
675680
}
676681

677-
decodeAudioData(source: string | ArrayBuffer | ArrayBufferView): Promise<AudioBuffer> {
678-
return new Promise((resolve, reject) => {
682+
decodeAudioData(source: string | ArrayBuffer | ArrayBufferView, successCallback?: (buffer: AudioBuffer) => void, errorCallback?: (error: Error) => void): Promise<AudioBuffer> {
683+
const ret = new Promise<AudioBuffer>((resolve, reject) => {
679684
if (typeof source === 'string') {
680685
if (looksLikePath(source)) {
681686
const filePath = normalizeSourcePath(source);
@@ -716,6 +721,11 @@ export class AudioContext extends BaseAudioContext {
716721
}),
717722
);
718723
});
724+
725+
if (successCallback) ret.then(successCallback);
726+
if (errorCallback) ret.catch(errorCallback);
727+
728+
return ret;
719729
}
720730

721731
resume(): Promise<void> {

packages/audio-context/index.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ export declare class AudioContext extends BaseAudioContext {
218218
readonly sinkId: string;
219219
setSinkId(deviceId: string): Promise<void>;
220220

221-
decodeAudioData(source: string | ArrayBuffer | ArrayBufferView): Promise<AudioBuffer>;
221+
decodeAudioData(source: string | ArrayBuffer | ArrayBufferView, successCallback?: (buffer: AudioBuffer) => void, errorCallback?: (error: Error) => void): Promise<AudioBuffer>;
222222
}
223223

224224
export declare class OfflineAudioContext extends BaseAudioContext {
@@ -240,7 +240,7 @@ export declare class OfflineAudioContext extends BaseAudioContext {
240240
createConvolver(options?: ConvolverOptions): ConvolverNode;
241241
createPeriodicWave(real: Float32Array | number[], imag: Float32Array | number[], options?: { disableNormalization?: boolean }): PeriodicWave;
242242

243-
decodeAudioData(source: string | ArrayBuffer | ArrayBufferView): Promise<AudioBuffer>;
243+
decodeAudioData(source: string | ArrayBuffer | ArrayBufferView, successCallback?: (buffer: AudioBuffer) => void, errorCallback?: (error: Error) => void): Promise<AudioBuffer>;
244244

245245
startRendering(): Promise<AudioBuffer>;
246246
}

packages/audio-context/index.ios.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -870,8 +870,8 @@ export class AudioContext extends BaseAudioContext {
870870
});
871871
}
872872

873-
decodeAudioData(source: string | ArrayBuffer | ArrayBufferView): Promise<AudioBuffer> {
874-
return new Promise((resolve, reject) => {
873+
decodeAudioData(source: string | ArrayBuffer | ArrayBufferView, successCallback?: (buffer: AudioBuffer) => void, errorCallback?: (error: Error) => void): Promise<AudioBuffer> {
874+
const ret = new Promise<AudioBuffer>((resolve, reject) => {
875875
try {
876876
if (typeof source === 'string') {
877877
if (looksLikePath(source)) {
@@ -897,6 +897,11 @@ export class AudioContext extends BaseAudioContext {
897897
reject(e);
898898
}
899899
});
900+
901+
if (successCallback) ret.then(successCallback);
902+
if (errorCallback) ret.catch(errorCallback);
903+
904+
return ret;
900905
}
901906
}
902907

@@ -960,8 +965,8 @@ export class OfflineAudioContext extends BaseAudioContext {
960965
return new PeriodicWave(this, { real, imag, disableNormalization: options?.disableNormalization });
961966
}
962967

963-
decodeAudioData(source: string | ArrayBuffer | ArrayBufferView): Promise<AudioBuffer> {
964-
return new Promise((resolve, reject) => {
968+
decodeAudioData(source: string | ArrayBuffer | ArrayBufferView, successCallback?: (buffer: AudioBuffer) => void, errorCallback?: (error: Error) => void): Promise<AudioBuffer> {
969+
const ret = new Promise<AudioBuffer>((resolve, reject) => {
965970
try {
966971
if (typeof source === 'string') {
967972
if (looksLikePath(source)) {
@@ -987,6 +992,11 @@ export class OfflineAudioContext extends BaseAudioContext {
987992
reject(e);
988993
}
989994
});
995+
996+
if (successCallback) ret.then(successCallback);
997+
if (errorCallback) ret.catch(errorCallback);
998+
999+
return ret;
9901000
}
9911001

9921002
startRendering(): Promise<AudioBuffer> {

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.0",
3+
"version": "1.1.1",
44
"description": "Web Audio API for NativeScript",
55
"main": "index",
66
"types": "index.d.ts",

0 commit comments

Comments
 (0)