react-native-audio-api 0.6.4-nightly-ff577c8-20250704 → 0.6.4-nightly-6fc62be-20250704
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/AudioDecoder.cpp +33 -44
- package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +3 -4
- package/common/cpp/audioapi/core/AudioParam.cpp +4 -5
- package/common/cpp/audioapi/core/BaseAudioContext.cpp +2 -3
- package/common/cpp/audioapi/core/BaseAudioContext.h +1 -1
- package/common/cpp/audioapi/core/utils/AudioDecoder.h +1 -38
- package/ios/audioapi/ios/AudioAPIModule.mm +8 -11
- package/ios/audioapi/ios/core/AudioDecoder.mm +31 -37
- package/lib/commonjs/core/BaseAudioContext.js +6 -7
- package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
- package/lib/module/core/BaseAudioContext.js +6 -7
- package/lib/module/core/BaseAudioContext.js.map +1 -1
- package/lib/typescript/core/BaseAudioContext.d.ts +1 -4
- package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
- package/lib/typescript/interfaces.d.ts +1 -1
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/BaseAudioContext.ts +9 -12
- package/src/interfaces.ts +1 -4
- package/common/cpp/audioapi/libs/audio-stretch/stretch.c +0 -610
- package/common/cpp/audioapi/libs/audio-stretch/stretch.h +0 -49
|
@@ -14,8 +14,8 @@ namespace audioapi {
|
|
|
14
14
|
std::shared_ptr<AudioBus> AudioDecoder::decodeWithFilePath(
|
|
15
15
|
const std::string &path) const {
|
|
16
16
|
ma_decoder decoder;
|
|
17
|
-
ma_decoder_config config =
|
|
18
|
-
|
|
17
|
+
ma_decoder_config config =
|
|
18
|
+
ma_decoder_config_init(ma_format_f32, 2, static_cast<int>(sampleRate_));
|
|
19
19
|
ma_result result = ma_decoder_init_file(path.c_str(), &config, &decoder);
|
|
20
20
|
if (result != MA_SUCCESS) {
|
|
21
21
|
__android_log_print(
|
|
@@ -32,31 +32,31 @@ std::shared_ptr<AudioBus> AudioDecoder::decodeWithFilePath(
|
|
|
32
32
|
ma_uint64 totalFrameCount;
|
|
33
33
|
ma_decoder_get_length_in_pcm_frames(&decoder, &totalFrameCount);
|
|
34
34
|
|
|
35
|
-
std::
|
|
35
|
+
auto audioBus = std::make_shared<AudioBus>(
|
|
36
|
+
static_cast<int>(totalFrameCount), 2, sampleRate_);
|
|
37
|
+
auto *buffer = new float[totalFrameCount * 2];
|
|
36
38
|
|
|
37
39
|
ma_uint64 framesDecoded;
|
|
38
|
-
ma_decoder_read_pcm_frames(
|
|
39
|
-
&decoder, buffer.data(), totalFrameCount, &framesDecoded);
|
|
40
|
+
ma_decoder_read_pcm_frames(&decoder, buffer, totalFrameCount, &framesDecoded);
|
|
40
41
|
|
|
41
42
|
if (framesDecoded == 0) {
|
|
42
43
|
__android_log_print(ANDROID_LOG_ERROR, "AudioDecoder", "Failed to decode");
|
|
43
44
|
|
|
45
|
+
delete[] buffer;
|
|
44
46
|
ma_decoder_uninit(&decoder);
|
|
47
|
+
|
|
45
48
|
return nullptr;
|
|
46
49
|
}
|
|
47
50
|
|
|
48
|
-
|
|
49
|
-
auto audioBus =
|
|
50
|
-
std::make_shared<AudioBus>(outputFrames, numChannels_, sampleRate_);
|
|
51
|
-
|
|
52
|
-
for (int i = 0; i < numChannels_; ++i) {
|
|
51
|
+
for (int i = 0; i < decoder.outputChannels; ++i) {
|
|
53
52
|
auto channelData = audioBus->getChannel(i)->getData();
|
|
54
53
|
|
|
55
|
-
for (ma_uint64 j = 0; j <
|
|
56
|
-
channelData[j] =
|
|
54
|
+
for (ma_uint64 j = 0; j < framesDecoded; ++j) {
|
|
55
|
+
channelData[j] = buffer[j * decoder.outputChannels + i];
|
|
57
56
|
}
|
|
58
57
|
}
|
|
59
58
|
|
|
59
|
+
delete[] buffer;
|
|
60
60
|
ma_decoder_uninit(&decoder);
|
|
61
61
|
|
|
62
62
|
return audioBus;
|
|
@@ -66,8 +66,8 @@ std::shared_ptr<AudioBus> AudioDecoder::decodeWithMemoryBlock(
|
|
|
66
66
|
const void *data,
|
|
67
67
|
size_t size) const {
|
|
68
68
|
ma_decoder decoder;
|
|
69
|
-
ma_decoder_config config =
|
|
70
|
-
|
|
69
|
+
ma_decoder_config config =
|
|
70
|
+
ma_decoder_config_init(ma_format_f32, 2, static_cast<int>(sampleRate_));
|
|
71
71
|
ma_result result = ma_decoder_init_memory(data, size, &config, &decoder);
|
|
72
72
|
if (result != MA_SUCCESS) {
|
|
73
73
|
__android_log_print(
|
|
@@ -83,63 +83,52 @@ std::shared_ptr<AudioBus> AudioDecoder::decodeWithMemoryBlock(
|
|
|
83
83
|
ma_uint64 totalFrameCount;
|
|
84
84
|
ma_decoder_get_length_in_pcm_frames(&decoder, &totalFrameCount);
|
|
85
85
|
|
|
86
|
-
std::
|
|
86
|
+
auto audioBus = std::make_shared<AudioBus>(
|
|
87
|
+
static_cast<int>(totalFrameCount), 2, sampleRate_);
|
|
88
|
+
auto *buffer = new float[totalFrameCount * 2];
|
|
87
89
|
|
|
88
90
|
ma_uint64 framesDecoded;
|
|
89
|
-
ma_decoder_read_pcm_frames(
|
|
90
|
-
&decoder, buffer.data(), totalFrameCount, &framesDecoded);
|
|
91
|
-
|
|
91
|
+
ma_decoder_read_pcm_frames(&decoder, buffer, totalFrameCount, &framesDecoded);
|
|
92
92
|
if (framesDecoded == 0) {
|
|
93
93
|
__android_log_print(ANDROID_LOG_ERROR, "AudioDecoder", "Failed to decode");
|
|
94
94
|
|
|
95
|
+
delete[] buffer;
|
|
95
96
|
ma_decoder_uninit(&decoder);
|
|
97
|
+
|
|
96
98
|
return nullptr;
|
|
97
99
|
}
|
|
98
100
|
|
|
99
|
-
|
|
100
|
-
auto audioBus =
|
|
101
|
-
std::make_shared<AudioBus>(outputFrames, numChannels_, sampleRate_);
|
|
102
|
-
|
|
103
|
-
for (int i = 0; i < numChannels_; ++i) {
|
|
101
|
+
for (int i = 0; i < decoder.outputChannels; ++i) {
|
|
104
102
|
auto channelData = audioBus->getChannel(i)->getData();
|
|
105
103
|
|
|
106
|
-
for (ma_uint64 j = 0; j <
|
|
107
|
-
channelData[j] =
|
|
104
|
+
for (ma_uint64 j = 0; j < framesDecoded; ++j) {
|
|
105
|
+
channelData[j] = buffer[j * decoder.outputChannels + i];
|
|
108
106
|
}
|
|
109
107
|
}
|
|
110
108
|
|
|
109
|
+
delete[] buffer;
|
|
111
110
|
ma_decoder_uninit(&decoder);
|
|
112
111
|
|
|
113
112
|
return audioBus;
|
|
114
113
|
}
|
|
115
114
|
|
|
116
115
|
std::shared_ptr<AudioBus> AudioDecoder::decodeWithPCMInBase64(
|
|
117
|
-
const std::string &data
|
|
118
|
-
const float playbackSpeed) const {
|
|
116
|
+
const std::string &data) const {
|
|
119
117
|
auto decodedData = base64_decode(data, false);
|
|
120
118
|
|
|
121
119
|
const auto uint8Data = reinterpret_cast<uint8_t *>(decodedData.data());
|
|
122
|
-
size_t
|
|
120
|
+
size_t frameCount = decodedData.size() / 2;
|
|
123
121
|
|
|
124
|
-
std::
|
|
125
|
-
|
|
126
|
-
|
|
122
|
+
auto audioBus = std::make_shared<AudioBus>(frameCount, 1, sampleRate_);
|
|
123
|
+
auto channelData = audioBus->getChannel(0)->getData();
|
|
124
|
+
|
|
125
|
+
for (size_t i = 0; i < frameCount; ++i) {
|
|
126
|
+
auto sample =
|
|
127
127
|
static_cast<int16_t>((uint8Data[i * 2 + 1] << 8) | uint8Data[i * 2]);
|
|
128
|
+
channelData[i] = static_cast<float>(sample);
|
|
128
129
|
}
|
|
129
130
|
|
|
130
|
-
|
|
131
|
-
auto outputFrames = buffer.size();
|
|
132
|
-
|
|
133
|
-
auto audioBus =
|
|
134
|
-
std::make_shared<AudioBus>(outputFrames, numChannels_, sampleRate_);
|
|
135
|
-
auto leftChannelData = audioBus->getChannel(0)->getData();
|
|
136
|
-
auto rightChannelData = audioBus->getChannel(1)->getData();
|
|
137
|
-
|
|
138
|
-
for (size_t i = 0; i < outputFrames; ++i) {
|
|
139
|
-
auto sample = int16ToFloat(buffer[i]);
|
|
140
|
-
leftChannelData[i] = sample;
|
|
141
|
-
rightChannelData[i] = sample;
|
|
142
|
-
}
|
|
131
|
+
dsp::multiplyByScalar(channelData, 1.0f / 32768.0f, channelData, frameCount);
|
|
143
132
|
|
|
144
133
|
return audioBus;
|
|
145
134
|
}
|
|
@@ -221,11 +221,10 @@ JSI_HOST_FUNCTION(createBufferQueueSource) {
|
|
|
221
221
|
|
|
222
222
|
JSI_HOST_FUNCTION(decodePCMAudioDataInBase64) {
|
|
223
223
|
auto b64 = args[0].getString(runtime).utf8(runtime);
|
|
224
|
-
auto playbackSpeed = static_cast<float>(args[1].getNumber());
|
|
225
224
|
|
|
226
|
-
auto promise = promiseVendor_->createPromise([this, b64
|
|
227
|
-
std::thread([this, b64,
|
|
228
|
-
auto results = context_->decodeWithPCMInBase64(b64
|
|
225
|
+
auto promise = promiseVendor_->createPromise([this, b64](std::shared_ptr<Promise> promise) {
|
|
226
|
+
std::thread([this, b64, promise = std::move(promise)]() {
|
|
227
|
+
auto results = context_->decodeWithPCMInBase64(b64);
|
|
229
228
|
|
|
230
229
|
if (!results) {
|
|
231
230
|
promise->reject("Failed to decode audio data source.");
|
|
@@ -18,11 +18,10 @@ AudioParam::AudioParam(
|
|
|
18
18
|
minValue_(minValue),
|
|
19
19
|
maxValue_(maxValue),
|
|
20
20
|
context_(context),
|
|
21
|
-
audioBus_(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
context->getSampleRate())) {
|
|
21
|
+
audioBus_(std::make_shared<AudioBus>(
|
|
22
|
+
RENDER_QUANTUM_SIZE,
|
|
23
|
+
1,
|
|
24
|
+
context->getSampleRate())) {
|
|
26
25
|
startTime_ = 0;
|
|
27
26
|
endTime_ = 0;
|
|
28
27
|
startValue_ = value_;
|
|
@@ -145,10 +145,9 @@ std::shared_ptr<AudioBuffer> BaseAudioContext::decodeAudioData(
|
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
std::shared_ptr<AudioBuffer> BaseAudioContext::decodeWithPCMInBase64(
|
|
148
|
-
const std::string &data
|
|
149
|
-
float playbackSpeed) {
|
|
148
|
+
const std::string &data) {
|
|
150
149
|
#ifndef AUDIO_API_TEST_SUITE
|
|
151
|
-
auto audioBus = audioDecoder_->decodeWithPCMInBase64(data
|
|
150
|
+
auto audioBus = audioDecoder_->decodeWithPCMInBase64(data);
|
|
152
151
|
|
|
153
152
|
if (!audioBus) {
|
|
154
153
|
return nullptr;
|
|
@@ -60,7 +60,7 @@ class BaseAudioContext {
|
|
|
60
60
|
#ifndef TESTING
|
|
61
61
|
std::shared_ptr<AudioBuffer> decodeAudioDataSource(const std::string &path);
|
|
62
62
|
std::shared_ptr<AudioBuffer> decodeAudioData(const void *data, size_t size);
|
|
63
|
-
std::shared_ptr<AudioBuffer> decodeWithPCMInBase64(const std::string &data
|
|
63
|
+
std::shared_ptr<AudioBuffer> decodeWithPCMInBase64(const std::string &data);
|
|
64
64
|
#endif //TESTING
|
|
65
65
|
|
|
66
66
|
std::shared_ptr<PeriodicWave> getBasicWaveForm(OscillatorType type);
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
-
#include <audioapi/libs/audio-stretch/stretch.h>
|
|
4
3
|
#include <memory>
|
|
5
4
|
#include <string>
|
|
6
|
-
#include <vector>
|
|
7
5
|
|
|
8
6
|
namespace audioapi {
|
|
9
7
|
|
|
@@ -15,45 +13,10 @@ class AudioDecoder {
|
|
|
15
13
|
|
|
16
14
|
[[nodiscard]] std::shared_ptr<AudioBus> decodeWithFilePath(const std::string &path) const;
|
|
17
15
|
[[nodiscard]] std::shared_ptr<AudioBus> decodeWithMemoryBlock(const void *data, size_t size) const;
|
|
18
|
-
[[nodiscard]] std::shared_ptr<AudioBus> decodeWithPCMInBase64(const std::string &data
|
|
16
|
+
[[nodiscard]] std::shared_ptr<AudioBus> decodeWithPCMInBase64(const std::string &data) const;
|
|
19
17
|
|
|
20
18
|
private:
|
|
21
19
|
float sampleRate_;
|
|
22
|
-
int numChannels_ = 2;
|
|
23
|
-
|
|
24
|
-
void changePlaybackSpeedIfNeeded(std::vector<int16_t> &buffer, size_t framesDecoded, int numChannels, float playbackSpeed) const {
|
|
25
|
-
if (playbackSpeed == 1.0f) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
auto stretcher = stretch_init(static_cast<int>(sampleRate_ / 333.0f), static_cast<int>(sampleRate_ / 55.0f), numChannels, 0x1);
|
|
30
|
-
|
|
31
|
-
int maxOutputFrames = stretch_output_capacity(stretcher, static_cast<int>(framesDecoded), 1 / playbackSpeed);
|
|
32
|
-
std::vector<int16_t> stretchedBuffer(maxOutputFrames);
|
|
33
|
-
|
|
34
|
-
int outputFrames = stretch_samples(
|
|
35
|
-
stretcher,
|
|
36
|
-
buffer.data(),
|
|
37
|
-
static_cast<int>(framesDecoded),
|
|
38
|
-
stretchedBuffer.data(),
|
|
39
|
-
1 / playbackSpeed
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
outputFrames += stretch_flush(stretcher, stretchedBuffer.data() + (outputFrames));
|
|
43
|
-
stretchedBuffer.resize(outputFrames);
|
|
44
|
-
|
|
45
|
-
buffer = stretchedBuffer;
|
|
46
|
-
|
|
47
|
-
stretch_deinit(stretcher);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
[[nodiscard]] static inline int16_t floatToInt16(float sample) {
|
|
51
|
-
return static_cast<int16_t>(sample * 32768.0f);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
[[nodiscard]] static inline float int16ToFloat(int16_t sample) {
|
|
55
|
-
return static_cast<float>(sample) / 32768.0f;
|
|
56
|
-
}
|
|
57
20
|
};
|
|
58
21
|
|
|
59
22
|
} // namespace audioapi
|
|
@@ -85,9 +85,8 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getDevicePreferredSampleRate)
|
|
|
85
85
|
return [self.audioSessionManager getDevicePreferredSampleRate];
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
RCT_EXPORT_METHOD(
|
|
89
|
-
|
|
90
|
-
reject)
|
|
88
|
+
RCT_EXPORT_METHOD(setAudioSessionActivity : (BOOL)enabled resolve : (RCTPromiseResolveBlock)
|
|
89
|
+
resolve reject : (RCTPromiseRejectBlock)reject)
|
|
91
90
|
{
|
|
92
91
|
if ([self.audioSessionManager setActive:enabled]) {
|
|
93
92
|
resolve(@"true");
|
|
@@ -97,9 +96,8 @@ RCT_EXPORT_METHOD(
|
|
|
97
96
|
resolve(@"false");
|
|
98
97
|
}
|
|
99
98
|
|
|
100
|
-
RCT_EXPORT_METHOD(
|
|
101
|
-
|
|
102
|
-
options allowHaptics : (BOOL)allowHaptics)
|
|
99
|
+
RCT_EXPORT_METHOD(setAudioSessionOptions : (NSString *)category mode : (NSString *)mode options : (NSArray *)
|
|
100
|
+
options allowHaptics : (BOOL)allowHaptics)
|
|
103
101
|
{
|
|
104
102
|
[self.audioSessionManager setAudioSessionOptions:category mode:mode options:options allowHaptics:allowHaptics];
|
|
105
103
|
}
|
|
@@ -129,15 +127,14 @@ RCT_EXPORT_METHOD(observeVolumeChanges : (BOOL)enabled)
|
|
|
129
127
|
[self.notificationManager observeVolumeChanges:(BOOL)enabled];
|
|
130
128
|
}
|
|
131
129
|
|
|
132
|
-
RCT_EXPORT_METHOD(
|
|
133
|
-
|
|
134
|
-
reject)
|
|
130
|
+
RCT_EXPORT_METHOD(requestRecordingPermissions : (nonnull RCTPromiseResolveBlock)
|
|
131
|
+
resolve reject : (nonnull RCTPromiseRejectBlock)reject)
|
|
135
132
|
{
|
|
136
133
|
[self.audioSessionManager requestRecordingPermissions:resolve reject:reject];
|
|
137
134
|
}
|
|
138
135
|
|
|
139
|
-
RCT_EXPORT_METHOD(
|
|
140
|
-
|
|
136
|
+
RCT_EXPORT_METHOD(checkRecordingPermissions : (nonnull RCTPromiseResolveBlock)
|
|
137
|
+
resolve reject : (nonnull RCTPromiseRejectBlock)reject)
|
|
141
138
|
{
|
|
142
139
|
[self.audioSessionManager checkRecordingPermissions:resolve reject:reject];
|
|
143
140
|
}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
|
|
4
4
|
#include <audioapi/core/utils/AudioDecoder.h>
|
|
5
5
|
#include <audioapi/dsp/VectorMath.h>
|
|
6
|
-
#include <audioapi/libs/audio-stretch/stretch.h>
|
|
7
6
|
#include <audioapi/libs/base64/base64.h>
|
|
8
7
|
#include <audioapi/utils/AudioArray.h>
|
|
9
8
|
#include <audioapi/utils/AudioBus.h>
|
|
@@ -13,7 +12,7 @@ namespace audioapi {
|
|
|
13
12
|
std::shared_ptr<AudioBus> AudioDecoder::decodeWithFilePath(const std::string &path) const
|
|
14
13
|
{
|
|
15
14
|
ma_decoder decoder;
|
|
16
|
-
ma_decoder_config config = ma_decoder_config_init(
|
|
15
|
+
ma_decoder_config config = ma_decoder_config_init(ma_format_f32, 2, sampleRate_);
|
|
17
16
|
ma_result result = ma_decoder_init_file(path.c_str(), &config, &decoder);
|
|
18
17
|
if (result != MA_SUCCESS) {
|
|
19
18
|
NSLog(@"Failed to initialize decoder for file: %s", path.c_str());
|
|
@@ -26,27 +25,29 @@ std::shared_ptr<AudioBus> AudioDecoder::decodeWithFilePath(const std::string &pa
|
|
|
26
25
|
ma_uint64 totalFrameCount;
|
|
27
26
|
ma_decoder_get_length_in_pcm_frames(&decoder, &totalFrameCount);
|
|
28
27
|
|
|
29
|
-
std::
|
|
28
|
+
auto audioBus = std::make_shared<AudioBus>(static_cast<int>(totalFrameCount), 2, sampleRate_);
|
|
29
|
+
auto *buffer = new float[totalFrameCount * 2];
|
|
30
30
|
|
|
31
31
|
ma_uint64 framesDecoded;
|
|
32
|
-
ma_decoder_read_pcm_frames(&decoder, buffer
|
|
32
|
+
ma_decoder_read_pcm_frames(&decoder, buffer, totalFrameCount, &framesDecoded);
|
|
33
33
|
if (framesDecoded == 0) {
|
|
34
34
|
NSLog(@"Failed to decode");
|
|
35
35
|
|
|
36
|
+
delete[] buffer;
|
|
36
37
|
ma_decoder_uninit(&decoder);
|
|
38
|
+
|
|
37
39
|
return nullptr;
|
|
38
40
|
}
|
|
39
41
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
for (int i = 0; i < decoder.outputChannels; ++i) {
|
|
43
|
+
float *channelData = audioBus->getChannel(i)->getData();
|
|
42
44
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
for (int j = 0; j < outputFrames; ++j) {
|
|
46
|
-
channelData[j] = int16ToFloat(buffer[j * numChannels_ + i]);
|
|
45
|
+
for (ma_uint64 j = 0; j < framesDecoded; ++j) {
|
|
46
|
+
channelData[j] = buffer[j * decoder.outputChannels + i];
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
delete[] buffer;
|
|
50
51
|
ma_decoder_uninit(&decoder);
|
|
51
52
|
|
|
52
53
|
return audioBus;
|
|
@@ -55,7 +56,7 @@ std::shared_ptr<AudioBus> AudioDecoder::decodeWithFilePath(const std::string &pa
|
|
|
55
56
|
std::shared_ptr<AudioBus> AudioDecoder::decodeWithMemoryBlock(const void *data, size_t size) const
|
|
56
57
|
{
|
|
57
58
|
ma_decoder decoder;
|
|
58
|
-
ma_decoder_config config = ma_decoder_config_init(
|
|
59
|
+
ma_decoder_config config = ma_decoder_config_init(ma_format_f32, 2, sampleRate_);
|
|
59
60
|
ma_result result = ma_decoder_init_memory(data, size, &config, &decoder);
|
|
60
61
|
if (result != MA_SUCCESS) {
|
|
61
62
|
NSLog(@"Failed to initialize decoder for memory block");
|
|
@@ -68,58 +69,51 @@ std::shared_ptr<AudioBus> AudioDecoder::decodeWithMemoryBlock(const void *data,
|
|
|
68
69
|
ma_uint64 totalFrameCount;
|
|
69
70
|
ma_decoder_get_length_in_pcm_frames(&decoder, &totalFrameCount);
|
|
70
71
|
|
|
71
|
-
std::
|
|
72
|
+
auto audioBus = std::make_shared<AudioBus>(static_cast<int>(totalFrameCount), 2, sampleRate_);
|
|
73
|
+
auto *buffer = new float[totalFrameCount * 2];
|
|
72
74
|
|
|
73
75
|
ma_uint64 framesDecoded;
|
|
74
|
-
ma_decoder_read_pcm_frames(&decoder, buffer
|
|
75
|
-
|
|
76
|
+
ma_decoder_read_pcm_frames(&decoder, buffer, totalFrameCount, &framesDecoded);
|
|
76
77
|
if (framesDecoded == 0) {
|
|
77
78
|
NSLog(@"Failed to decode");
|
|
78
79
|
|
|
80
|
+
delete[] buffer;
|
|
79
81
|
ma_decoder_uninit(&decoder);
|
|
82
|
+
|
|
80
83
|
return nullptr;
|
|
81
84
|
}
|
|
82
85
|
|
|
83
|
-
|
|
84
|
-
|
|
86
|
+
for (int i = 0; i < decoder.outputChannels; ++i) {
|
|
87
|
+
float *channelData = audioBus->getChannel(i)->getData();
|
|
85
88
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
for (int j = 0; j < outputFrames; ++j) {
|
|
89
|
-
channelData[j] = int16ToFloat(buffer[j * numChannels_ + i]);
|
|
89
|
+
for (ma_uint64 j = 0; j < framesDecoded; ++j) {
|
|
90
|
+
channelData[j] = buffer[j * decoder.outputChannels + i];
|
|
90
91
|
}
|
|
91
92
|
}
|
|
92
93
|
|
|
94
|
+
delete[] buffer;
|
|
93
95
|
ma_decoder_uninit(&decoder);
|
|
94
96
|
|
|
95
97
|
return audioBus;
|
|
96
98
|
}
|
|
97
99
|
|
|
98
|
-
std::shared_ptr<AudioBus> AudioDecoder::decodeWithPCMInBase64(const std::string &data
|
|
100
|
+
std::shared_ptr<AudioBus> AudioDecoder::decodeWithPCMInBase64(const std::string &data) const
|
|
99
101
|
{
|
|
100
102
|
auto decodedData = base64_decode(data, false);
|
|
101
103
|
|
|
102
104
|
const auto uint8Data = reinterpret_cast<uint8_t *>(decodedData.data());
|
|
103
|
-
size_t
|
|
105
|
+
size_t frameCount = decodedData.size() / 2;
|
|
104
106
|
|
|
105
|
-
std::
|
|
106
|
-
|
|
107
|
-
buffer[i] = static_cast<int16_t>((uint8Data[i * 2 + 1] << 8) | uint8Data[i * 2]);
|
|
108
|
-
}
|
|
107
|
+
auto audioBus = std::make_shared<AudioBus>(frameCount, 1, sampleRate_);
|
|
108
|
+
auto channelData = audioBus->getChannel(0)->getData();
|
|
109
109
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
auto audioBus = std::make_shared<AudioBus>(outputFrames, numChannels_, sampleRate_);
|
|
114
|
-
auto leftChannelData = audioBus->getChannel(0)->getData();
|
|
115
|
-
auto rightChannelData = audioBus->getChannel(1)->getData();
|
|
116
|
-
|
|
117
|
-
for (size_t i = 0; i < outputFrames; ++i) {
|
|
118
|
-
auto sample = int16ToFloat(buffer[i]);
|
|
119
|
-
leftChannelData[i] = sample;
|
|
120
|
-
rightChannelData[i] = sample;
|
|
110
|
+
for (size_t i = 0; i < frameCount; ++i) {
|
|
111
|
+
auto sample = static_cast<int16_t>((uint8Data[i * 2 + 1] << 8) | uint8Data[i * 2]);
|
|
112
|
+
channelData[i] = static_cast<float>(sample);
|
|
121
113
|
}
|
|
122
114
|
|
|
115
|
+
dsp::multiplyByScalar(channelData, 1.0f / 32768.0f, channelData, frameCount);
|
|
116
|
+
|
|
123
117
|
return audioBus;
|
|
124
118
|
}
|
|
125
119
|
|
|
@@ -73,8 +73,6 @@ class BaseAudioContext {
|
|
|
73
73
|
createAnalyser() {
|
|
74
74
|
return new _AnalyserNode.default(this, this.context.createAnalyser());
|
|
75
75
|
}
|
|
76
|
-
|
|
77
|
-
/** Decodes audio data from a local file path. */
|
|
78
76
|
async decodeAudioDataSource(sourcePath) {
|
|
79
77
|
// Remove the file:// prefix if it exists
|
|
80
78
|
if (sourcePath.startsWith('file://')) {
|
|
@@ -82,14 +80,15 @@ class BaseAudioContext {
|
|
|
82
80
|
}
|
|
83
81
|
return new _AudioBuffer.default(await this.context.decodeAudioDataSource(sourcePath));
|
|
84
82
|
}
|
|
85
|
-
|
|
86
|
-
/** Decodes audio data from an ArrayBuffer. */
|
|
87
83
|
async decodeAudioData(data) {
|
|
84
|
+
// pcm data in base64
|
|
85
|
+
if (typeof data === 'string') {
|
|
86
|
+
return new _AudioBuffer.default(await this.context.decodePCMAudioDataInBase64(data));
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// data in array buffer
|
|
88
90
|
return new _AudioBuffer.default(await this.context.decodeAudioData(new Uint8Array(data)));
|
|
89
91
|
}
|
|
90
|
-
async decodePCMInBase64Data(base64, playbackRate = 1.0) {
|
|
91
|
-
return new _AudioBuffer.default(await this.context.decodePCMAudioDataInBase64(base64, playbackRate));
|
|
92
|
-
}
|
|
93
92
|
}
|
|
94
93
|
exports.default = BaseAudioContext;
|
|
95
94
|
//# sourceMappingURL=BaseAudioContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_AudioDestinationNode","_interopRequireDefault","require","_OscillatorNode","_CustomProcessorNode","_GainNode","_StereoPannerNode","_BiquadFilterNode","_AudioBufferSourceNode","_AudioBuffer","_PeriodicWave","_AnalyserNode","_AudioBufferQueueSourceNode","_errors","e","__esModule","default","BaseAudioContext","constructor","context","destination","AudioDestinationNode","sampleRate","currentTime","state","createOscillator","OscillatorNode","createCustomProcessor","identifier","CustomProcessorNode","createGain","GainNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createBufferSource","options","pitchCorrection","AudioBufferSourceNode","createBufferQueueSource","AudioBufferQueueSourceNode","createBuffer","numOfChannels","length","NotSupportedError","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","disableNormalization","PeriodicWave","createAnalyser","AnalyserNode","decodeAudioDataSource","sourcePath","startsWith","replace","decodeAudioData","data","
|
|
1
|
+
{"version":3,"names":["_AudioDestinationNode","_interopRequireDefault","require","_OscillatorNode","_CustomProcessorNode","_GainNode","_StereoPannerNode","_BiquadFilterNode","_AudioBufferSourceNode","_AudioBuffer","_PeriodicWave","_AnalyserNode","_AudioBufferQueueSourceNode","_errors","e","__esModule","default","BaseAudioContext","constructor","context","destination","AudioDestinationNode","sampleRate","currentTime","state","createOscillator","OscillatorNode","createCustomProcessor","identifier","CustomProcessorNode","createGain","GainNode","createStereoPanner","StereoPannerNode","createBiquadFilter","BiquadFilterNode","createBufferSource","options","pitchCorrection","AudioBufferSourceNode","createBufferQueueSource","AudioBufferQueueSourceNode","createBuffer","numOfChannels","length","NotSupportedError","AudioBuffer","createPeriodicWave","real","imag","constraints","InvalidAccessError","disableNormalization","PeriodicWave","createAnalyser","AnalyserNode","decodeAudioDataSource","sourcePath","startsWith","replace","decodeAudioData","data","decodePCMAudioDataInBase64","Uint8Array","exports"],"sourceRoot":"../../../src","sources":["core/BaseAudioContext.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -68,8 +68,6 @@ export default class BaseAudioContext {
|
|
|
68
68
|
createAnalyser() {
|
|
69
69
|
return new AnalyserNode(this, this.context.createAnalyser());
|
|
70
70
|
}
|
|
71
|
-
|
|
72
|
-
/** Decodes audio data from a local file path. */
|
|
73
71
|
async decodeAudioDataSource(sourcePath) {
|
|
74
72
|
// Remove the file:// prefix if it exists
|
|
75
73
|
if (sourcePath.startsWith('file://')) {
|
|
@@ -77,13 +75,14 @@ export default class BaseAudioContext {
|
|
|
77
75
|
}
|
|
78
76
|
return new AudioBuffer(await this.context.decodeAudioDataSource(sourcePath));
|
|
79
77
|
}
|
|
80
|
-
|
|
81
|
-
/** Decodes audio data from an ArrayBuffer. */
|
|
82
78
|
async decodeAudioData(data) {
|
|
79
|
+
// pcm data in base64
|
|
80
|
+
if (typeof data === 'string') {
|
|
81
|
+
return new AudioBuffer(await this.context.decodePCMAudioDataInBase64(data));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// data in array buffer
|
|
83
85
|
return new AudioBuffer(await this.context.decodeAudioData(new Uint8Array(data)));
|
|
84
86
|
}
|
|
85
|
-
async decodePCMInBase64Data(base64, playbackRate = 1.0) {
|
|
86
|
-
return new AudioBuffer(await this.context.decodePCMAudioDataInBase64(base64, playbackRate));
|
|
87
|
-
}
|
|
88
87
|
}
|
|
89
88
|
//# sourceMappingURL=BaseAudioContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AudioDestinationNode","OscillatorNode","CustomProcessorNode","GainNode","StereoPannerNode","BiquadFilterNode","AudioBufferSourceNode","AudioBuffer","PeriodicWave","AnalyserNode","AudioBufferQueueSourceNode","InvalidAccessError","NotSupportedError","BaseAudioContext","constructor","context","destination","sampleRate","currentTime","state","createOscillator","createCustomProcessor","identifier","createGain","createStereoPanner","createBiquadFilter","createBufferSource","options","pitchCorrection","createBufferQueueSource","createBuffer","numOfChannels","length","createPeriodicWave","real","imag","constraints","disableNormalization","createAnalyser","decodeAudioDataSource","sourcePath","startsWith","replace","decodeAudioData","data","
|
|
1
|
+
{"version":3,"names":["AudioDestinationNode","OscillatorNode","CustomProcessorNode","GainNode","StereoPannerNode","BiquadFilterNode","AudioBufferSourceNode","AudioBuffer","PeriodicWave","AnalyserNode","AudioBufferQueueSourceNode","InvalidAccessError","NotSupportedError","BaseAudioContext","constructor","context","destination","sampleRate","currentTime","state","createOscillator","createCustomProcessor","identifier","createGain","createStereoPanner","createBiquadFilter","createBufferSource","options","pitchCorrection","createBufferQueueSource","createBuffer","numOfChannels","length","createPeriodicWave","real","imag","constraints","disableNormalization","createAnalyser","decodeAudioDataSource","sourcePath","startsWith","replace","decodeAudioData","data","decodePCMAudioDataInBase64","Uint8Array"],"sourceRoot":"../../../src","sources":["core/BaseAudioContext.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -28,10 +28,7 @@ export default class BaseAudioContext {
|
|
|
28
28
|
createBuffer(numOfChannels: number, length: number, sampleRate: number): AudioBuffer;
|
|
29
29
|
createPeriodicWave(real: Float32Array, imag: Float32Array, constraints?: PeriodicWaveConstraints): PeriodicWave;
|
|
30
30
|
createAnalyser(): AnalyserNode;
|
|
31
|
-
/** Decodes audio data from a local file path. */
|
|
32
31
|
decodeAudioDataSource(sourcePath: string): Promise<AudioBuffer>;
|
|
33
|
-
|
|
34
|
-
decodeAudioData(data: ArrayBuffer): Promise<AudioBuffer>;
|
|
35
|
-
decodePCMInBase64Data(base64: string, playbackRate?: number): Promise<AudioBuffer>;
|
|
32
|
+
decodeAudioData(data: ArrayBuffer | string): Promise<AudioBuffer>;
|
|
36
33
|
}
|
|
37
34
|
//# sourceMappingURL=BaseAudioContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseAudioContext.d.ts","sourceRoot":"","sources":["../../../src/core/BaseAudioContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAClB,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AAGtE,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;gBAElC,OAAO,EAAE,iBAAiB;IAMtC,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED,gBAAgB,IAAI,cAAc;IAIlC,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB;IAO9D,UAAU,IAAI,QAAQ;IAItB,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,CAChB,OAAO,CAAC,EAAE,4BAA4B,GACrC,qBAAqB;IASxB,uBAAuB,IAAI,0BAA0B;IAOrD,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;
|
|
1
|
+
{"version":3,"file":"BaseAudioContext.d.ts","sourceRoot":"","sources":["../../../src/core/BaseAudioContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAClB,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AAGtE,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;gBAElC,OAAO,EAAE,iBAAiB;IAMtC,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,YAAY,CAE/B;IAED,gBAAgB,IAAI,cAAc;IAIlC,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB;IAO9D,UAAU,IAAI,QAAQ;IAItB,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,IAAI,gBAAgB;IAItC,kBAAkB,CAChB,OAAO,CAAC,EAAE,4BAA4B,GACrC,qBAAqB;IASxB,uBAAuB,IAAI,0BAA0B;IAOrD,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;IAIxB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAW/D,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAaxE"}
|
|
@@ -17,7 +17,7 @@ export interface IBaseAudioContext {
|
|
|
17
17
|
createAnalyser: () => IAnalyserNode;
|
|
18
18
|
decodeAudioDataSource: (sourcePath: string) => Promise<IAudioBuffer>;
|
|
19
19
|
decodeAudioData: (arrayBuffer: ArrayBuffer) => Promise<IAudioBuffer>;
|
|
20
|
-
decodePCMAudioDataInBase64: (b64: string
|
|
20
|
+
decodePCMAudioDataInBase64: (b64: string) => Promise<IAudioBuffer>;
|
|
21
21
|
}
|
|
22
22
|
export interface IAudioContext extends IBaseAudioContext {
|
|
23
23
|
close(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,gBAAgB,IAAI,eAAe,CAAC;IACpC,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,CAAC;IAChE,UAAU,IAAI,SAAS,CAAC;IACxB,kBAAkB,IAAI,iBAAiB,CAAC;IACxC,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;IAC5C,kBAAkB,EAAE,CAAC,eAAe,EAAE,OAAO,KAAK,sBAAsB,CAAC;IACzE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;IAC3D,YAAY,EAAE,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,KACf,YAAY,CAAC;IAClB,kBAAkB,EAAE,CAClB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,oBAAoB,EAAE,OAAO,KAC1B,aAAa,CAAC;IACnB,cAAc,EAAE,MAAM,aAAa,CAAC;IACpC,qBAAqB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACrE,eAAe,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACrE,0BAA0B,EAAE,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-audio-api",
|
|
3
|
-
"version": "0.6.4-nightly-
|
|
3
|
+
"version": "0.6.4-nightly-6fc62be-20250704",
|
|
4
4
|
"description": "react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification",
|
|
5
5
|
"bin": {
|
|
6
6
|
"setup-rn-audio-api-web": "./scripts/setup-rn-audio-api-web.js"
|