react-native-audio-api 0.9.0-nightly-96a5bcd-20251007 → 0.9.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.
- package/android/src/main/cpp/audioapi/android/core/{utils/AudioDecoder.cpp → AudioDecoder.cpp} +75 -79
- package/common/cpp/audioapi/AudioAPIModuleInstaller.h +43 -99
- package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.cpp +101 -1
- package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +3 -0
- package/common/cpp/audioapi/core/AudioContext.cpp +2 -0
- package/common/cpp/audioapi/core/BaseAudioContext.cpp +35 -0
- package/common/cpp/audioapi/core/BaseAudioContext.h +12 -4
- package/common/cpp/audioapi/core/OfflineAudioContext.cpp +2 -0
- package/common/cpp/audioapi/core/utils/AudioDecoder.h +90 -36
- package/common/cpp/audioapi/libs/ffmpeg/FFmpegDecoding.cpp +282 -241
- package/common/cpp/audioapi/libs/ffmpeg/FFmpegDecoding.h +19 -57
- package/common/cpp/test/CMakeLists.txt +1 -1
- package/ios/audioapi/ios/core/AudioDecoder.mm +156 -0
- package/lib/commonjs/api.js +1 -14
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/core/BaseAudioContext.js +18 -11
- package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
- package/lib/module/api.js +1 -2
- package/lib/module/api.js.map +1 -1
- package/lib/module/core/BaseAudioContext.js +18 -11
- package/lib/module/core/BaseAudioContext.js.map +1 -1
- package/lib/typescript/api.d.ts +1 -3
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/core/BaseAudioContext.d.ts +6 -3
- package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
- package/lib/typescript/interfaces.d.ts +3 -6
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/api.ts +0 -5
- package/src/core/BaseAudioContext.ts +29 -26
- package/src/interfaces.ts +6 -18
- package/common/cpp/audioapi/HostObjects/utils/AudioDecoderHostObject.cpp +0 -107
- package/common/cpp/audioapi/HostObjects/utils/AudioDecoderHostObject.h +0 -28
- package/common/cpp/audioapi/core/types/AudioFormat.h +0 -16
- package/ios/audioapi/ios/core/utils/AudioDecoder.mm +0 -160
- package/lib/commonjs/core/AudioDecoder.js +0 -48
- package/lib/commonjs/core/AudioDecoder.js.map +0 -1
- package/lib/module/core/AudioDecoder.js +0 -42
- package/lib/module/core/AudioDecoder.js.map +0 -1
- package/lib/typescript/core/AudioDecoder.d.ts +0 -4
- package/lib/typescript/core/AudioDecoder.d.ts.map +0 -1
- package/src/core/AudioDecoder.ts +0 -78
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* This file dynamically links to the FFmpeg library, which is licensed under
|
|
3
|
-
*
|
|
2
|
+
* This file dynamically links to the FFmpeg library, which is licensed under the
|
|
3
|
+
* GNU Lesser General Public License (LGPL) version 2.1 or later.
|
|
4
4
|
*
|
|
5
|
-
* Our own code in this file is licensed under the MIT License and dynamic
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Our own code in this file is licensed under the MIT License and dynamic linking
|
|
6
|
+
* allows you to use this code without your entire project being subject to the
|
|
7
|
+
* terms of the LGPL. However, note that if you link statically to FFmpeg, you must
|
|
8
|
+
* comply with the terms of the LGPL for FFmpeg itself.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
#include <audioapi/utils/AudioBus.h>
|
|
@@ -14,62 +14,24 @@
|
|
|
14
14
|
#include <vector>
|
|
15
15
|
|
|
16
16
|
extern "C" {
|
|
17
|
-
#include <libavcodec/avcodec.h>
|
|
18
|
-
#include <libavformat/avformat.h>
|
|
19
|
-
#include <libavutil/opt.h>
|
|
20
|
-
#include <libswresample/swresample.h>
|
|
17
|
+
#include <libavcodec/avcodec.h>
|
|
18
|
+
#include <libavformat/avformat.h>
|
|
19
|
+
#include <libavutil/opt.h>
|
|
20
|
+
#include <libswresample/swresample.h>
|
|
21
21
|
}
|
|
22
|
-
class AudioBuffer;
|
|
23
22
|
|
|
24
|
-
namespace audioapi::
|
|
23
|
+
namespace audioapi::ffmpegdecoding {
|
|
25
24
|
// Custom IO context for reading from memory
|
|
26
25
|
struct MemoryIOContext {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
struct AudioStreamContext {
|
|
33
|
-
AVFormatContext *fmt_ctx = nullptr;
|
|
34
|
-
AVCodecContext *codec_ctx = nullptr;
|
|
35
|
-
int audio_stream_index = -1;
|
|
36
|
-
};
|
|
26
|
+
const uint8_t *data;
|
|
27
|
+
size_t size;
|
|
28
|
+
size_t pos;
|
|
29
|
+
};
|
|
37
30
|
|
|
38
31
|
int read_packet(void *opaque, uint8_t *buf, int buf_size);
|
|
39
32
|
int64_t seek_packet(void *opaque, int64_t offset, int whence);
|
|
40
|
-
|
|
41
|
-
std::vector<
|
|
42
|
-
|
|
43
|
-
AVCodecContext *codec_ctx,
|
|
44
|
-
int out_sample_rate,
|
|
45
|
-
int output_channel_count,
|
|
46
|
-
int audio_stream_index,
|
|
47
|
-
size_t &framesRead);
|
|
48
|
-
|
|
49
|
-
void convertFrameToBuffer(
|
|
50
|
-
SwrContext *swr,
|
|
51
|
-
AVFrame *frame,
|
|
52
|
-
int output_channel_count,
|
|
53
|
-
std::vector<float> &buffer,
|
|
54
|
-
size_t &framesRead,
|
|
55
|
-
uint8_t **&resampled_data,
|
|
56
|
-
int &max_resampled_samples);
|
|
57
|
-
bool setupDecoderContext(
|
|
58
|
-
AVFormatContext *fmt_ctx,
|
|
59
|
-
int &audio_stream_index,
|
|
60
|
-
std::unique_ptr<AVCodecContext, decltype(&avcodec_free_context)>
|
|
61
|
-
&codec_ctx);
|
|
62
|
-
std::shared_ptr<AudioBuffer> decodeAudioFrames(
|
|
63
|
-
AVFormatContext *fmt_ctx,
|
|
64
|
-
AVCodecContext *codec_ctx,
|
|
65
|
-
int audio_stream_index,
|
|
66
|
-
int sample_rate);
|
|
67
|
-
|
|
68
|
-
std::shared_ptr<AudioBuffer>
|
|
69
|
-
decodeWithMemoryBlock(const void *data, size_t size, int sample_rate);
|
|
70
|
-
|
|
71
|
-
std::shared_ptr<AudioBuffer> decodeWithFilePath(
|
|
72
|
-
const std::string &path,
|
|
73
|
-
int sample_rate);
|
|
33
|
+
std::vector<int16_t> readAllPcmFrames(AVFormatContext *fmt_ctx, AVCodecContext *codec_ctx, int out_sample_rate, int audio_stream_index, int channels, size_t &framesRead);
|
|
34
|
+
std::vector<int16_t> decodeWithMemoryBlock(const void *data, size_t size, const int channel_count, int sample_rate);
|
|
35
|
+
std::vector<int16_t> decodeWithFilePath(const std::string &path, const int channel_count, int sample_rate);
|
|
74
36
|
|
|
75
|
-
} // namespace audioapi::ffmpegdecoder
|
|
37
|
+
} // namespace audioapi::ffmpegdecoder
|
|
@@ -21,7 +21,7 @@ enable_testing()
|
|
|
21
21
|
file(GLOB_RECURSE RNAUDIOAPI_SRC
|
|
22
22
|
CONFIGURE_DEPENDS
|
|
23
23
|
"${ROOT}/node_modules/react-native-audio-api/common/cpp/audioapi/*.cpp"
|
|
24
|
-
"${ROOT}/node_modules/react-native-audio-api/android/src/main/cpp/audioapi/android/core/
|
|
24
|
+
"${ROOT}/node_modules/react-native-audio-api/android/src/main/cpp/audioapi/android/core/AudioDecoder.cpp"
|
|
25
25
|
)
|
|
26
26
|
|
|
27
27
|
# exclude HostObjects from tests
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
#define MINIAUDIO_IMPLEMENTATION
|
|
2
|
+
#import <audioapi/libs/miniaudio/miniaudio.h>
|
|
3
|
+
|
|
4
|
+
#include <audioapi/libs/miniaudio/decoders/libopus/miniaudio_libopus.h>
|
|
5
|
+
#include <audioapi/libs/miniaudio/decoders/libvorbis/miniaudio_libvorbis.h>
|
|
6
|
+
|
|
7
|
+
#include <audioapi/core/utils/AudioDecoder.h>
|
|
8
|
+
#include <audioapi/dsp/VectorMath.h>
|
|
9
|
+
#include <audioapi/libs/audio-stretch/stretch.h>
|
|
10
|
+
#include <audioapi/libs/base64/base64.h>
|
|
11
|
+
#include <audioapi/libs/ffmpeg/FFmpegDecoding.h>
|
|
12
|
+
#include <audioapi/utils/AudioArray.h>
|
|
13
|
+
#include <audioapi/utils/AudioBus.h>
|
|
14
|
+
|
|
15
|
+
namespace audioapi {
|
|
16
|
+
|
|
17
|
+
// Decoding audio in fixed-size chunks because total frame count can't be
|
|
18
|
+
// determined in advance. Note: ma_decoder_get_length_in_pcm_frames() always
|
|
19
|
+
// returns 0 for Vorbis decoders.
|
|
20
|
+
std::vector<int16_t> AudioDecoder::readAllPcmFrames(ma_decoder &decoder, int numChannels, ma_uint64 &outFramesRead)
|
|
21
|
+
{
|
|
22
|
+
std::vector<int16_t> buffer;
|
|
23
|
+
std::vector<int16_t> temp(CHUNK_SIZE * numChannels);
|
|
24
|
+
outFramesRead = 0;
|
|
25
|
+
|
|
26
|
+
while (true) {
|
|
27
|
+
ma_uint64 tempFramesDecoded = 0;
|
|
28
|
+
ma_decoder_read_pcm_frames(&decoder, temp.data(), CHUNK_SIZE, &tempFramesDecoded);
|
|
29
|
+
if (tempFramesDecoded == 0) {
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
buffer.insert(buffer.end(), temp.data(), temp.data() + tempFramesDecoded * numChannels);
|
|
34
|
+
outFramesRead += tempFramesDecoded;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return buffer;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
std::shared_ptr<AudioBus>
|
|
41
|
+
AudioDecoder::makeAudioBusFromInt16Buffer(const std::vector<int16_t> &buffer, int numChannels, float sampleRate)
|
|
42
|
+
{
|
|
43
|
+
auto outputFrames = buffer.size() / numChannels;
|
|
44
|
+
auto audioBus = std::make_shared<AudioBus>(outputFrames, numChannels, sampleRate);
|
|
45
|
+
|
|
46
|
+
for (int ch = 0; ch < numChannels; ++ch) {
|
|
47
|
+
auto channelData = audioBus->getChannel(ch)->getData();
|
|
48
|
+
for (int i = 0; i < outputFrames; ++i) {
|
|
49
|
+
channelData[i] = int16ToFloat(buffer[i * numChannels + ch]);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return audioBus;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
std::shared_ptr<AudioBus> AudioDecoder::decodeWithFilePath(const std::string &path) const
|
|
56
|
+
{
|
|
57
|
+
std::vector<int16_t> buffer;
|
|
58
|
+
if (AudioDecoder::pathHasExtension(path, {".mp4", ".m4a", ".aac"})) {
|
|
59
|
+
buffer = ffmpegdecoding::decodeWithFilePath(path, numChannels_, static_cast<int>(sampleRate_));
|
|
60
|
+
if (buffer.empty()) {
|
|
61
|
+
NSLog(@"Failed to decode with FFmpeg: %s", path.c_str());
|
|
62
|
+
return nullptr;
|
|
63
|
+
}
|
|
64
|
+
return makeAudioBusFromInt16Buffer(buffer, numChannels_, sampleRate_);
|
|
65
|
+
}
|
|
66
|
+
ma_decoding_backend_vtable *customBackends[] = {ma_decoding_backend_libvorbis, ma_decoding_backend_libopus};
|
|
67
|
+
|
|
68
|
+
ma_decoder decoder;
|
|
69
|
+
ma_decoder_config config = ma_decoder_config_init(ma_format_s16, numChannels_, static_cast<int>(sampleRate_));
|
|
70
|
+
config.ppCustomBackendVTables = customBackends;
|
|
71
|
+
config.customBackendCount = sizeof(customBackends) / sizeof(customBackends[0]);
|
|
72
|
+
|
|
73
|
+
if (ma_decoder_init_file(path.c_str(), &config, &decoder) != MA_SUCCESS) {
|
|
74
|
+
NSLog(@"Failed to initialize decoder for file: %s", path.c_str());
|
|
75
|
+
ma_decoder_uninit(&decoder);
|
|
76
|
+
return nullptr;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
ma_uint64 framesRead = 0;
|
|
80
|
+
buffer = readAllPcmFrames(decoder, numChannels_, framesRead);
|
|
81
|
+
if (framesRead == 0) {
|
|
82
|
+
NSLog(@"Failed to decode");
|
|
83
|
+
ma_decoder_uninit(&decoder);
|
|
84
|
+
return nullptr;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
ma_decoder_uninit(&decoder);
|
|
88
|
+
return makeAudioBusFromInt16Buffer(buffer, numChannels_, sampleRate_);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
std::shared_ptr<AudioBus> AudioDecoder::decodeWithMemoryBlock(const void *data, size_t size) const
|
|
92
|
+
{
|
|
93
|
+
std::vector<int16_t> buffer;
|
|
94
|
+
const AudioFormat format = AudioDecoder::detectAudioFormat(data, size);
|
|
95
|
+
if (format == AudioFormat::MP4 || format == AudioFormat::M4A || format == AudioFormat::AAC) {
|
|
96
|
+
buffer = ffmpegdecoding::decodeWithMemoryBlock(data, size, numChannels_, static_cast<int>(sampleRate_));
|
|
97
|
+
if (buffer.empty()) {
|
|
98
|
+
NSLog(@"Failed to decode with FFmpeg");
|
|
99
|
+
return nullptr;
|
|
100
|
+
}
|
|
101
|
+
return makeAudioBusFromInt16Buffer(buffer, numChannels_, sampleRate_);
|
|
102
|
+
}
|
|
103
|
+
ma_decoding_backend_vtable *customBackends[] = {ma_decoding_backend_libvorbis, ma_decoding_backend_libopus};
|
|
104
|
+
|
|
105
|
+
ma_decoder decoder;
|
|
106
|
+
ma_decoder_config config = ma_decoder_config_init(ma_format_s16, numChannels_, static_cast<int>(sampleRate_));
|
|
107
|
+
config.ppCustomBackendVTables = customBackends;
|
|
108
|
+
config.customBackendCount = sizeof(customBackends) / sizeof(customBackends[0]);
|
|
109
|
+
|
|
110
|
+
if (ma_decoder_init_memory(data, size, &config, &decoder) != MA_SUCCESS) {
|
|
111
|
+
NSLog(@"Failed to initialize decoder for memory block");
|
|
112
|
+
ma_decoder_uninit(&decoder);
|
|
113
|
+
return nullptr;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
ma_uint64 framesRead = 0;
|
|
117
|
+
buffer = readAllPcmFrames(decoder, numChannels_, framesRead);
|
|
118
|
+
if (framesRead == 0) {
|
|
119
|
+
NSLog(@"Failed to decode");
|
|
120
|
+
ma_decoder_uninit(&decoder);
|
|
121
|
+
return nullptr;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
ma_decoder_uninit(&decoder);
|
|
125
|
+
return makeAudioBusFromInt16Buffer(buffer, numChannels_, sampleRate_);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
std::shared_ptr<AudioBus> AudioDecoder::decodeWithPCMInBase64(const std::string &data, float playbackSpeed) const
|
|
129
|
+
{
|
|
130
|
+
auto decodedData = base64_decode(data, false);
|
|
131
|
+
|
|
132
|
+
const auto uint8Data = reinterpret_cast<uint8_t *>(decodedData.data());
|
|
133
|
+
size_t framesDecoded = decodedData.size() / 2;
|
|
134
|
+
|
|
135
|
+
std::vector<int16_t> buffer(framesDecoded);
|
|
136
|
+
for (size_t i = 0; i < framesDecoded; ++i) {
|
|
137
|
+
buffer[i] = static_cast<int16_t>((uint8Data[i * 2 + 1] << 8) | uint8Data[i * 2]);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
changePlaybackSpeedIfNeeded(buffer, framesDecoded, 1, playbackSpeed);
|
|
141
|
+
auto outputFrames = buffer.size();
|
|
142
|
+
|
|
143
|
+
auto audioBus = std::make_shared<AudioBus>(outputFrames, numChannels_, sampleRate_);
|
|
144
|
+
auto leftChannelData = audioBus->getChannel(0)->getData();
|
|
145
|
+
auto rightChannelData = audioBus->getChannel(1)->getData();
|
|
146
|
+
|
|
147
|
+
for (size_t i = 0; i < outputFrames; ++i) {
|
|
148
|
+
auto sample = int16ToFloat(buffer[i]);
|
|
149
|
+
leftChannelData[i] = sample;
|
|
150
|
+
rightChannelData[i] = sample;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return audioBus;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
} // namespace audioapi
|
package/lib/commonjs/api.js
CHANGED
|
@@ -219,18 +219,6 @@ Object.defineProperty(exports, "WorkletSourceNode", {
|
|
|
219
219
|
return _WorkletSourceNode.default;
|
|
220
220
|
}
|
|
221
221
|
});
|
|
222
|
-
Object.defineProperty(exports, "decodeAudioData", {
|
|
223
|
-
enumerable: true,
|
|
224
|
-
get: function () {
|
|
225
|
-
return _AudioDecoder.decodeAudioData;
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
Object.defineProperty(exports, "decodePCMInBase64", {
|
|
229
|
-
enumerable: true,
|
|
230
|
-
get: function () {
|
|
231
|
-
return _AudioDecoder.decodePCMInBase64;
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
222
|
Object.defineProperty(exports, "useSystemVolume", {
|
|
235
223
|
enumerable: true,
|
|
236
224
|
get: function () {
|
|
@@ -262,7 +250,6 @@ var _StreamerNode = _interopRequireDefault(require("./core/StreamerNode"));
|
|
|
262
250
|
var _ConstantSourceNode = _interopRequireDefault(require("./core/ConstantSourceNode"));
|
|
263
251
|
var _system = _interopRequireDefault(require("./system"));
|
|
264
252
|
var _useSystemVolume = _interopRequireDefault(require("./hooks/useSystemVolume"));
|
|
265
|
-
var _AudioDecoder = require("./core/AudioDecoder");
|
|
266
253
|
var _types = require("./types");
|
|
267
254
|
var _errors = require("./errors");
|
|
268
255
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -270,7 +257,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
270
257
|
|
|
271
258
|
/* eslint-disable no-var */
|
|
272
259
|
|
|
273
|
-
if (global.createAudioContext == null || global.createOfflineAudioContext == null || global.createAudioRecorder == null || global.
|
|
260
|
+
if (global.createAudioContext == null || global.createOfflineAudioContext == null || global.createAudioRecorder == null || global.AudioEventEmitter == null) {
|
|
274
261
|
if (!_specs.NativeAudioAPIModule) {
|
|
275
262
|
throw new Error(`Failed to install react-native-audio-api: The native module could not be found.`);
|
|
276
263
|
}
|
package/lib/commonjs/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_specs","require","_WorkletNode","_interopRequireDefault","_WorkletSourceNode","_WorkletProcessingNode","_RecorderAdapterNode","_AudioBuffer","_AudioBufferSourceNode","_AudioBufferQueueSourceNode","_AudioContext","_OfflineAudioContext","_AudioDestinationNode","_AudioNode","_AnalyserNode","_AudioParam","_AudioScheduledSourceNode","_BaseAudioContext","_BiquadFilterNode","_GainNode","_OscillatorNode","_StereoPannerNode","_AudioRecorder","_StreamerNode","_ConstantSourceNode","_system","_useSystemVolume","
|
|
1
|
+
{"version":3,"names":["_specs","require","_WorkletNode","_interopRequireDefault","_WorkletSourceNode","_WorkletProcessingNode","_RecorderAdapterNode","_AudioBuffer","_AudioBufferSourceNode","_AudioBufferQueueSourceNode","_AudioContext","_OfflineAudioContext","_AudioDestinationNode","_AudioNode","_AnalyserNode","_AudioParam","_AudioScheduledSourceNode","_BaseAudioContext","_BiquadFilterNode","_GainNode","_OscillatorNode","_StereoPannerNode","_AudioRecorder","_StreamerNode","_ConstantSourceNode","_system","_useSystemVolume","_types","_errors","e","__esModule","default","global","createAudioContext","createOfflineAudioContext","createAudioRecorder","AudioEventEmitter","NativeAudioAPIModule","Error","install"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AA8CA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,sBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,oBAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,YAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,sBAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,2BAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,aAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,oBAAA,GAAAR,sBAAA,CAAAF,OAAA;AACA,IAAAW,qBAAA,GAAAT,sBAAA,CAAAF,OAAA;AACA,IAAAY,UAAA,GAAAV,sBAAA,CAAAF,OAAA;AACA,IAAAa,aAAA,GAAAX,sBAAA,CAAAF,OAAA;AACA,IAAAc,WAAA,GAAAZ,sBAAA,CAAAF,OAAA;AACA,IAAAe,yBAAA,GAAAb,sBAAA,CAAAF,OAAA;AACA,IAAAgB,iBAAA,GAAAd,sBAAA,CAAAF,OAAA;AACA,IAAAiB,iBAAA,GAAAf,sBAAA,CAAAF,OAAA;AACA,IAAAkB,SAAA,GAAAhB,sBAAA,CAAAF,OAAA;AACA,IAAAmB,eAAA,GAAAjB,sBAAA,CAAAF,OAAA;AACA,IAAAoB,iBAAA,GAAAlB,sBAAA,CAAAF,OAAA;AACA,IAAAqB,cAAA,GAAAnB,sBAAA,CAAAF,OAAA;AACA,IAAAsB,aAAA,GAAApB,sBAAA,CAAAF,OAAA;AACA,IAAAuB,mBAAA,GAAArB,sBAAA,CAAAF,OAAA;AACA,IAAAwB,OAAA,GAAAtB,sBAAA,CAAAF,OAAA;AACA,IAAAyB,gBAAA,GAAAvB,sBAAA,CAAAF,OAAA;AAEA,IAAA0B,MAAA,GAAA1B,OAAA;AAWA,IAAA2B,OAAA,GAAA3B,OAAA;AAMkB,SAAAE,uBAAA0B,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AA/ElB;;AAoBA;;AAEA,IACEG,MAAM,CAACC,kBAAkB,IAAI,IAAI,IACjCD,MAAM,CAACE,yBAAyB,IAAI,IAAI,IACxCF,MAAM,CAACG,mBAAmB,IAAI,IAAI,IAClCH,MAAM,CAACI,iBAAiB,IAAI,IAAI,EAChC;EACA,IAAI,CAACC,2BAAoB,EAAE;IACzB,MAAM,IAAIC,KAAK,CACb,iFACF,CAAC;EACH;EAEAD,2BAAoB,CAACE,OAAO,CAAC,CAAC;AAChC","ignoreList":[]}
|
|
@@ -14,7 +14,6 @@ var _AudioBufferQueueSourceNode = _interopRequireDefault(require("./AudioBufferQ
|
|
|
14
14
|
var _AudioBufferSourceNode = _interopRequireDefault(require("./AudioBufferSourceNode"));
|
|
15
15
|
var _AudioDestinationNode = _interopRequireDefault(require("./AudioDestinationNode"));
|
|
16
16
|
var _BiquadFilterNode = _interopRequireDefault(require("./BiquadFilterNode"));
|
|
17
|
-
var _ConstantSourceNode = _interopRequireDefault(require("./ConstantSourceNode"));
|
|
18
17
|
var _GainNode = _interopRequireDefault(require("./GainNode"));
|
|
19
18
|
var _OscillatorNode = _interopRequireDefault(require("./OscillatorNode"));
|
|
20
19
|
var _PeriodicWave = _interopRequireDefault(require("./PeriodicWave"));
|
|
@@ -22,7 +21,7 @@ var _RecorderAdapterNode = _interopRequireDefault(require("./RecorderAdapterNode
|
|
|
22
21
|
var _StereoPannerNode = _interopRequireDefault(require("./StereoPannerNode"));
|
|
23
22
|
var _StreamerNode = _interopRequireDefault(require("./StreamerNode"));
|
|
24
23
|
var _WorkletNode = _interopRequireDefault(require("./WorkletNode"));
|
|
25
|
-
var
|
|
24
|
+
var _ConstantSourceNode = _interopRequireDefault(require("./ConstantSourceNode"));
|
|
26
25
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
27
26
|
class BaseAudioContext {
|
|
28
27
|
constructor(context) {
|
|
@@ -36,15 +35,6 @@ class BaseAudioContext {
|
|
|
36
35
|
get state() {
|
|
37
36
|
return this.context.state;
|
|
38
37
|
}
|
|
39
|
-
async decodeAudioData(input, sampleRate) {
|
|
40
|
-
if (!(typeof input === 'string' || input instanceof ArrayBuffer)) {
|
|
41
|
-
throw new TypeError('Input must be a string or ArrayBuffer');
|
|
42
|
-
}
|
|
43
|
-
return await (0, _AudioDecoder.decodeAudioData)(input, sampleRate ?? this.sampleRate);
|
|
44
|
-
}
|
|
45
|
-
async decodePCMInBase64(base64String, inputSampleRate, inputChannelCount, isInterleaved = true) {
|
|
46
|
-
return await (0, _AudioDecoder.decodePCMInBase64)(base64String, inputSampleRate, inputChannelCount, isInterleaved);
|
|
47
|
-
}
|
|
48
38
|
createWorkletNode(callback, bufferLength, inputChannelCount, workletRuntime = 'AudioRuntime') {
|
|
49
39
|
if (inputChannelCount < 1 || inputChannelCount > 32) {
|
|
50
40
|
throw new _errors.NotSupportedError(`The number of input channels provided (${inputChannelCount}) can not be less than 1 or greater than 32`);
|
|
@@ -142,6 +132,23 @@ class BaseAudioContext {
|
|
|
142
132
|
createAnalyser() {
|
|
143
133
|
return new _AnalyserNode.default(this, this.context.createAnalyser());
|
|
144
134
|
}
|
|
135
|
+
|
|
136
|
+
/** Decodes audio data from a local file path. */
|
|
137
|
+
async decodeAudioDataSource(sourcePath) {
|
|
138
|
+
// Remove the file:// prefix if it exists
|
|
139
|
+
if (sourcePath.startsWith('file://')) {
|
|
140
|
+
sourcePath = sourcePath.replace('file://', '');
|
|
141
|
+
}
|
|
142
|
+
return new _AudioBuffer.default(await this.context.decodeAudioDataSource(sourcePath));
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/** Decodes audio data from an ArrayBuffer. */
|
|
146
|
+
async decodeAudioData(data) {
|
|
147
|
+
return new _AudioBuffer.default(await this.context.decodeAudioData(new Uint8Array(data)));
|
|
148
|
+
}
|
|
149
|
+
async decodePCMInBase64Data(base64, playbackRate = 1.0) {
|
|
150
|
+
return new _AudioBuffer.default(await this.context.decodePCMAudioDataInBase64(base64, playbackRate));
|
|
151
|
+
}
|
|
145
152
|
}
|
|
146
153
|
exports.default = BaseAudioContext;
|
|
147
154
|
//# sourceMappingURL=BaseAudioContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_errors","require","_utils","_WorkletSourceNode","_interopRequireDefault","_WorkletProcessingNode","_AnalyserNode","_AudioBuffer","_AudioBufferQueueSourceNode","_AudioBufferSourceNode","_AudioDestinationNode","_BiquadFilterNode","
|
|
1
|
+
{"version":3,"names":["_errors","require","_utils","_WorkletSourceNode","_interopRequireDefault","_WorkletProcessingNode","_AnalyserNode","_AudioBuffer","_AudioBufferQueueSourceNode","_AudioBufferSourceNode","_AudioDestinationNode","_BiquadFilterNode","_GainNode","_OscillatorNode","_PeriodicWave","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WorkletNode","_ConstantSourceNode","e","__esModule","default","BaseAudioContext","constructor","context","destination","AudioDestinationNode","sampleRate","currentTime","state","createWorkletNode","callback","bufferLength","inputChannelCount","workletRuntime","NotSupportedError","isWorkletsAvailable","shareableWorklet","workletsModule","makeShareableCloneRecursive","audioBuffers","channelCount","floatAudioData","map","buffer","Float32Array","WorkletNode","Error","createWorkletProcessingNode","inputBuffers","outputBuffers","framesToProcess","inputData","outputData","WorkletProcessingNode","createWorkletSourceNode","startOffset","WorkletSourceNode","createRecorderAdapter","RecorderAdapterNode","createOscillator","OscillatorNode","createStreamer","StreamerNode","createConstantSource","ConstantSourceNode","createGain","GainNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createBufferSource","options","pitchCorrection","AudioBufferSourceNode","createBufferQueueSource","AudioBufferQueueSourceNode","createBuffer","numOfChannels","length","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","disableNormalization","PeriodicWave","createAnalyser","AnalyserNode","decodeAudioDataSource","sourcePath","startsWith","replace","decodeAudioData","data","Uint8Array","decodePCMInBase64Data","base64","playbackRate","decodePCMAudioDataInBase64","exports"],"sourceRoot":"../../../src","sources":["core/BaseAudioContext.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/api.js
CHANGED
|
@@ -6,7 +6,7 @@ import { NativeAudioAPIModule } from "./specs/index.js";
|
|
|
6
6
|
|
|
7
7
|
/* eslint-disable no-var */
|
|
8
8
|
|
|
9
|
-
if (global.createAudioContext == null || global.createOfflineAudioContext == null || global.createAudioRecorder == null || global.
|
|
9
|
+
if (global.createAudioContext == null || global.createOfflineAudioContext == null || global.createAudioRecorder == null || global.AudioEventEmitter == null) {
|
|
10
10
|
if (!NativeAudioAPIModule) {
|
|
11
11
|
throw new Error(`Failed to install react-native-audio-api: The native module could not be found.`);
|
|
12
12
|
}
|
|
@@ -36,7 +36,6 @@ export { default as StreamerNode } from "./core/StreamerNode.js";
|
|
|
36
36
|
export { default as ConstantSourceNode } from "./core/ConstantSourceNode.js";
|
|
37
37
|
export { default as AudioManager } from "./system/index.js";
|
|
38
38
|
export { default as useSystemVolume } from "./hooks/useSystemVolume.js";
|
|
39
|
-
export { decodeAudioData, decodePCMInBase64 } from "./core/AudioDecoder.js";
|
|
40
39
|
export { OscillatorType, BiquadFilterType, ChannelCountMode, ChannelInterpretation, ContextState, WindowType, PeriodicWaveConstraints, AudioWorkletRuntime } from "./types.js";
|
|
41
40
|
export { IndexSizeError, InvalidAccessError, InvalidStateError, RangeError, NotSupportedError } from "./errors/index.js";
|
|
42
41
|
//# sourceMappingURL=api.js.map
|
package/lib/module/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeAudioAPIModule","global","createAudioContext","createOfflineAudioContext","createAudioRecorder","
|
|
1
|
+
{"version":3,"names":["NativeAudioAPIModule","global","createAudioContext","createOfflineAudioContext","createAudioRecorder","AudioEventEmitter","Error","install","default","WorkletNode","WorkletSourceNode","WorkletProcessingNode","RecorderAdapterNode","AudioBuffer","AudioBufferSourceNode","AudioBufferQueueSourceNode","AudioContext","OfflineAudioContext","AudioDestinationNode","AudioNode","AnalyserNode","AudioParam","AudioScheduledSourceNode","BaseAudioContext","BiquadFilterNode","GainNode","OscillatorNode","StereoPannerNode","AudioRecorder","StreamerNode","ConstantSourceNode","AudioManager","useSystemVolume","OscillatorType","BiquadFilterType","ChannelCountMode","ChannelInterpretation","ContextState","WindowType","PeriodicWaveConstraints","AudioWorkletRuntime","IndexSizeError","InvalidAccessError","InvalidStateError","RangeError","NotSupportedError"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":";;AAAA,SAASA,oBAAoB,QAAQ,kBAAS;;AAS9C;;AAoBA;;AAEA,IACEC,MAAM,CAACC,kBAAkB,IAAI,IAAI,IACjCD,MAAM,CAACE,yBAAyB,IAAI,IAAI,IACxCF,MAAM,CAACG,mBAAmB,IAAI,IAAI,IAClCH,MAAM,CAACI,iBAAiB,IAAI,IAAI,EAChC;EACA,IAAI,CAACL,oBAAoB,EAAE;IACzB,MAAM,IAAIM,KAAK,CACb,iFACF,CAAC;EACH;EAEAN,oBAAoB,CAACO,OAAO,CAAC,CAAC;AAChC;AAEA,SAASC,OAAO,IAAIC,WAAW,QAAQ,uBAAoB;AAC3D,SAASD,OAAO,IAAIE,iBAAiB,QAAQ,6BAA0B;AACvE,SAASF,OAAO,IAAIG,qBAAqB,QAAQ,iCAA8B;AAC/E,SAASH,OAAO,IAAII,mBAAmB,QAAQ,+BAA4B;AAC3E,SAASJ,OAAO,IAAIK,WAAW,QAAQ,uBAAoB;AAC3D,SAASL,OAAO,IAAIM,qBAAqB,QAAQ,iCAA8B;AAC/E,SAASN,OAAO,IAAIO,0BAA0B,QAAQ,sCAAmC;AACzF,SAASP,OAAO,IAAIQ,YAAY,QAAQ,wBAAqB;AAC7D,SAASR,OAAO,IAAIS,mBAAmB,QAAQ,+BAA4B;AAC3E,SAAST,OAAO,IAAIU,oBAAoB,QAAQ,gCAA6B;AAC7E,SAASV,OAAO,IAAIW,SAAS,QAAQ,qBAAkB;AACvD,SAASX,OAAO,IAAIY,YAAY,QAAQ,wBAAqB;AAC7D,SAASZ,OAAO,IAAIa,UAAU,QAAQ,sBAAmB;AACzD,SAASb,OAAO,IAAIc,wBAAwB,QAAQ,oCAAiC;AACrF,SAASd,OAAO,IAAIe,gBAAgB,QAAQ,4BAAyB;AACrE,SAASf,OAAO,IAAIgB,gBAAgB,QAAQ,4BAAyB;AACrE,SAAShB,OAAO,IAAIiB,QAAQ,QAAQ,oBAAiB;AACrD,SAASjB,OAAO,IAAIkB,cAAc,QAAQ,0BAAuB;AACjE,SAASlB,OAAO,IAAImB,gBAAgB,QAAQ,4BAAyB;AACrE,SAASnB,OAAO,IAAIoB,aAAa,QAAQ,yBAAsB;AAC/D,SAASpB,OAAO,IAAIqB,YAAY,QAAQ,wBAAqB;AAC7D,SAASrB,OAAO,IAAIsB,kBAAkB,QAAQ,8BAA2B;AACzE,SAAStB,OAAO,IAAIuB,YAAY,QAAQ,mBAAU;AAClD,SAASvB,OAAO,IAAIwB,eAAe,QAAQ,4BAAyB;AAEpE,SACEC,cAAc,EACdC,gBAAgB,EAChBC,gBAAgB,EAChBC,qBAAqB,EACrBC,YAAY,EACZC,UAAU,EACVC,uBAAuB,EACvBC,mBAAmB,QACd,YAAS;AAEhB,SACEC,cAAc,EACdC,kBAAkB,EAClBC,iBAAiB,EACjBC,UAAU,EACVC,iBAAiB,QACZ,mBAAU","ignoreList":[]}
|
|
@@ -10,7 +10,6 @@ import AudioBufferQueueSourceNode from "./AudioBufferQueueSourceNode.js";
|
|
|
10
10
|
import AudioBufferSourceNode from "./AudioBufferSourceNode.js";
|
|
11
11
|
import AudioDestinationNode from "./AudioDestinationNode.js";
|
|
12
12
|
import BiquadFilterNode from "./BiquadFilterNode.js";
|
|
13
|
-
import ConstantSourceNode from "./ConstantSourceNode.js";
|
|
14
13
|
import GainNode from "./GainNode.js";
|
|
15
14
|
import OscillatorNode from "./OscillatorNode.js";
|
|
16
15
|
import PeriodicWave from "./PeriodicWave.js";
|
|
@@ -18,7 +17,7 @@ import RecorderAdapterNode from "./RecorderAdapterNode.js";
|
|
|
18
17
|
import StereoPannerNode from "./StereoPannerNode.js";
|
|
19
18
|
import StreamerNode from "./StreamerNode.js";
|
|
20
19
|
import WorkletNode from "./WorkletNode.js";
|
|
21
|
-
import
|
|
20
|
+
import ConstantSourceNode from "./ConstantSourceNode.js";
|
|
22
21
|
export default class BaseAudioContext {
|
|
23
22
|
constructor(context) {
|
|
24
23
|
this.context = context;
|
|
@@ -31,15 +30,6 @@ export default class BaseAudioContext {
|
|
|
31
30
|
get state() {
|
|
32
31
|
return this.context.state;
|
|
33
32
|
}
|
|
34
|
-
async decodeAudioData(input, sampleRate) {
|
|
35
|
-
if (!(typeof input === 'string' || input instanceof ArrayBuffer)) {
|
|
36
|
-
throw new TypeError('Input must be a string or ArrayBuffer');
|
|
37
|
-
}
|
|
38
|
-
return await decodeAudioData(input, sampleRate ?? this.sampleRate);
|
|
39
|
-
}
|
|
40
|
-
async decodePCMInBase64(base64String, inputSampleRate, inputChannelCount, isInterleaved = true) {
|
|
41
|
-
return await decodePCMInBase64(base64String, inputSampleRate, inputChannelCount, isInterleaved);
|
|
42
|
-
}
|
|
43
33
|
createWorkletNode(callback, bufferLength, inputChannelCount, workletRuntime = 'AudioRuntime') {
|
|
44
34
|
if (inputChannelCount < 1 || inputChannelCount > 32) {
|
|
45
35
|
throw new NotSupportedError(`The number of input channels provided (${inputChannelCount}) can not be less than 1 or greater than 32`);
|
|
@@ -137,5 +127,22 @@ export default class BaseAudioContext {
|
|
|
137
127
|
createAnalyser() {
|
|
138
128
|
return new AnalyserNode(this, this.context.createAnalyser());
|
|
139
129
|
}
|
|
130
|
+
|
|
131
|
+
/** Decodes audio data from a local file path. */
|
|
132
|
+
async decodeAudioDataSource(sourcePath) {
|
|
133
|
+
// Remove the file:// prefix if it exists
|
|
134
|
+
if (sourcePath.startsWith('file://')) {
|
|
135
|
+
sourcePath = sourcePath.replace('file://', '');
|
|
136
|
+
}
|
|
137
|
+
return new AudioBuffer(await this.context.decodeAudioDataSource(sourcePath));
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/** Decodes audio data from an ArrayBuffer. */
|
|
141
|
+
async decodeAudioData(data) {
|
|
142
|
+
return new AudioBuffer(await this.context.decodeAudioData(new Uint8Array(data)));
|
|
143
|
+
}
|
|
144
|
+
async decodePCMInBase64Data(base64, playbackRate = 1.0) {
|
|
145
|
+
return new AudioBuffer(await this.context.decodePCMAudioDataInBase64(base64, playbackRate));
|
|
146
|
+
}
|
|
140
147
|
}
|
|
141
148
|
//# sourceMappingURL=BaseAudioContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["InvalidAccessError","NotSupportedError","isWorkletsAvailable","workletsModule","WorkletSourceNode","WorkletProcessingNode","AnalyserNode","AudioBuffer","AudioBufferQueueSourceNode","AudioBufferSourceNode","AudioDestinationNode","BiquadFilterNode","
|
|
1
|
+
{"version":3,"names":["InvalidAccessError","NotSupportedError","isWorkletsAvailable","workletsModule","WorkletSourceNode","WorkletProcessingNode","AnalyserNode","AudioBuffer","AudioBufferQueueSourceNode","AudioBufferSourceNode","AudioDestinationNode","BiquadFilterNode","GainNode","OscillatorNode","PeriodicWave","RecorderAdapterNode","StereoPannerNode","StreamerNode","WorkletNode","ConstantSourceNode","BaseAudioContext","constructor","context","destination","sampleRate","currentTime","state","createWorkletNode","callback","bufferLength","inputChannelCount","workletRuntime","shareableWorklet","makeShareableCloneRecursive","audioBuffers","channelCount","floatAudioData","map","buffer","Float32Array","Error","createWorkletProcessingNode","inputBuffers","outputBuffers","framesToProcess","inputData","outputData","createWorkletSourceNode","startOffset","createRecorderAdapter","createOscillator","createStreamer","createConstantSource","createGain","createStereoPanner","createBiquadFilter","createBufferSource","options","pitchCorrection","createBufferQueueSource","createBuffer","numOfChannels","length","createPeriodicWave","real","imag","constraints","disableNormalization","createAnalyser","decodeAudioDataSource","sourcePath","startsWith","replace","decodeAudioData","data","Uint8Array","decodePCMInBase64Data","base64","playbackRate","decodePCMAudioDataInBase64"],"sourceRoot":"../../../src","sources":["core/BaseAudioContext.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/typescript/api.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { AudioRecorderOptions } from './types';
|
|
2
|
-
import type { IAudioContext,
|
|
2
|
+
import type { IAudioContext, IAudioRecorder, IOfflineAudioContext, IAudioEventEmitter } from './interfaces';
|
|
3
3
|
declare global {
|
|
4
4
|
var createAudioContext: (sampleRate: number, initSuspended: boolean, audioWorkletRuntime: any) => IAudioContext;
|
|
5
5
|
var createOfflineAudioContext: (numberOfChannels: number, length: number, sampleRate: number, audioWorkletRuntime: any) => IOfflineAudioContext;
|
|
6
6
|
var createAudioRecorder: (options: AudioRecorderOptions) => IAudioRecorder;
|
|
7
|
-
var createAudioDecoder: () => IAudioDecoder;
|
|
8
7
|
var AudioEventEmitter: IAudioEventEmitter;
|
|
9
8
|
}
|
|
10
9
|
export { default as WorkletNode } from './core/WorkletNode';
|
|
@@ -31,7 +30,6 @@ export { default as StreamerNode } from './core/StreamerNode';
|
|
|
31
30
|
export { default as ConstantSourceNode } from './core/ConstantSourceNode';
|
|
32
31
|
export { default as AudioManager } from './system';
|
|
33
32
|
export { default as useSystemVolume } from './hooks/useSystemVolume';
|
|
34
|
-
export { decodeAudioData, decodePCMInBase64 } from './core/AudioDecoder';
|
|
35
33
|
export { OscillatorType, BiquadFilterType, ChannelCountMode, ChannelInterpretation, ContextState, WindowType, PeriodicWaveConstraints, AudioWorkletRuntime, } from './types';
|
|
36
34
|
export { IndexSizeError, InvalidAccessError, InvalidStateError, RangeError, NotSupportedError, } from './errors';
|
|
37
35
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EACV,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,kBAAkB,EAAE,CACtB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,OAAO,EAEtB,mBAAmB,EAAE,GAAG,KACrB,aAAa,CAAC;IACnB,IAAI,yBAAyB,EAAE,CAC7B,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAElB,mBAAmB,EAAE,GAAG,KACrB,oBAAoB,CAAC;IAE1B,IAAI,mBAAmB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,cAAc,CAAC;IAE3E,IAAI,iBAAiB,EAAE,kBAAkB,CAAC;CAC3C;AAkBD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,UAAU,EACV,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,iBAAiB,GAClB,MAAM,UAAU,CAAC"}
|
|
@@ -8,7 +8,6 @@ import AudioBufferQueueSourceNode from './AudioBufferQueueSourceNode';
|
|
|
8
8
|
import AudioBufferSourceNode from './AudioBufferSourceNode';
|
|
9
9
|
import AudioDestinationNode from './AudioDestinationNode';
|
|
10
10
|
import BiquadFilterNode from './BiquadFilterNode';
|
|
11
|
-
import ConstantSourceNode from './ConstantSourceNode';
|
|
12
11
|
import GainNode from './GainNode';
|
|
13
12
|
import OscillatorNode from './OscillatorNode';
|
|
14
13
|
import PeriodicWave from './PeriodicWave';
|
|
@@ -16,6 +15,7 @@ import RecorderAdapterNode from './RecorderAdapterNode';
|
|
|
16
15
|
import StereoPannerNode from './StereoPannerNode';
|
|
17
16
|
import StreamerNode from './StreamerNode';
|
|
18
17
|
import WorkletNode from './WorkletNode';
|
|
18
|
+
import ConstantSourceNode from './ConstantSourceNode';
|
|
19
19
|
export default class BaseAudioContext {
|
|
20
20
|
readonly destination: AudioDestinationNode;
|
|
21
21
|
readonly sampleRate: number;
|
|
@@ -23,8 +23,6 @@ export default class BaseAudioContext {
|
|
|
23
23
|
constructor(context: IBaseAudioContext);
|
|
24
24
|
get currentTime(): number;
|
|
25
25
|
get state(): ContextState;
|
|
26
|
-
decodeAudioData(input: string | ArrayBuffer, sampleRate?: number): Promise<AudioBuffer>;
|
|
27
|
-
decodePCMInBase64(base64String: string, inputSampleRate: number, inputChannelCount: number, isInterleaved?: boolean): Promise<AudioBuffer>;
|
|
28
26
|
createWorkletNode(callback: (audioData: Array<Float32Array>, channelCount: number) => void, bufferLength: number, inputChannelCount: number, workletRuntime?: AudioWorkletRuntime): WorkletNode;
|
|
29
27
|
createWorkletProcessingNode(callback: (inputData: Array<Float32Array>, outputData: Array<Float32Array>, framesToProcess: number, currentTime: number) => void, workletRuntime?: AudioWorkletRuntime): WorkletProcessingNode;
|
|
30
28
|
createWorkletSourceNode(callback: (audioData: Array<Float32Array>, framesToProcess: number, currentTime: number, startOffset: number) => void, workletRuntime?: AudioWorkletRuntime): WorkletSourceNode;
|
|
@@ -40,5 +38,10 @@ export default class BaseAudioContext {
|
|
|
40
38
|
createBuffer(numOfChannels: number, length: number, sampleRate: number): AudioBuffer;
|
|
41
39
|
createPeriodicWave(real: Float32Array, imag: Float32Array, constraints?: PeriodicWaveConstraints): PeriodicWave;
|
|
42
40
|
createAnalyser(): AnalyserNode;
|
|
41
|
+
/** Decodes audio data from a local file path. */
|
|
42
|
+
decodeAudioDataSource(sourcePath: string): Promise<AudioBuffer>;
|
|
43
|
+
/** Decodes audio data from an ArrayBuffer. */
|
|
44
|
+
decodeAudioData(data: ArrayBuffer): Promise<AudioBuffer>;
|
|
45
|
+
decodePCMInBase64Data(base64: string, playbackRate?: number): Promise<AudioBuffer>;
|
|
43
46
|
}
|
|
44
47
|
//# sourceMappingURL=BaseAudioContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseAudioContext.d.ts","sourceRoot":"","sources":["../../../src/core/BaseAudioContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,gCAAgC,EAChC,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAElB,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"BaseAudioContext.d.ts","sourceRoot":"","sources":["../../../src/core/BaseAudioContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,gCAAgC,EAChC,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAElB,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;gBAExB,OAAO,EAAE,iBAAiB;IAMtC,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED,iBAAiB,CACf,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,EACxE,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,EACzB,cAAc,GAAE,mBAAoC,GACnD,WAAW;IAsCd,2BAA2B,CACzB,QAAQ,EAAE,CACR,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,EAC9B,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,EAC/B,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,KAChB,IAAI,EACT,cAAc,GAAE,mBAAoC,GACnD,qBAAqB;IAiCxB,uBAAuB,CACrB,QAAQ,EAAE,CACR,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,EAC9B,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,KAChB,IAAI,EACT,cAAc,GAAE,mBAAoC,GACnD,iBAAiB;IA8BpB,qBAAqB,IAAI,mBAAmB;IAI5C,gBAAgB,IAAI,cAAc;IAIlC,cAAc,IAAI,YAAY;IAI9B,oBAAoB,IAAI,kBAAkB;IAI1C,UAAU,IAAI,QAAQ;IAItB,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,CAChB,OAAO,CAAC,EAAE,gCAAgC,GACzC,qBAAqB;IASxB,uBAAuB,CACrB,OAAO,CAAC,EAAE,gCAAgC,GACzC,0BAA0B;IAS7B,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,WAAW;IAwBd,kBAAkB,CAChB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,WAAW,CAAC,EAAE,uBAAuB,GACpC,YAAY;IAcf,cAAc,IAAI,YAAY;IAI9B,iDAAiD;IAC3C,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAWrE,8CAA8C;IACxC,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAMxD,qBAAqB,CACzB,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,MAAY,GACzB,OAAO,CAAC,WAAW,CAAC;CAKxB"}
|