react-native-audio-api 0.4.8-rc2 → 0.4.9
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/CMakeLists.txt +2 -5
- package/android/build.gradle +25 -2
- package/android/src/main/cpp/core/AudioDecoder.cpp +10 -1
- package/android/src/main/cpp/core/AudioPlayer.cpp +6 -3
- package/android/src/main/cpp/libs/pffft.c +1906 -0
- package/android/src/main/cpp/libs/pffft.h +198 -0
- package/common/cpp/core/AnalyserNode.cpp +11 -10
- package/common/cpp/core/AnalyserNode.h +2 -0
- package/common/cpp/core/AudioBuffer.cpp +1 -1
- package/common/cpp/core/AudioBufferSourceNode.cpp +26 -16
- package/common/cpp/core/AudioBus.cpp +105 -13
- package/common/cpp/core/AudioBus.h +6 -4
- package/common/cpp/core/AudioContext.cpp +4 -3
- package/common/cpp/core/AudioContext.h +4 -4
- package/common/cpp/core/AudioDestinationNode.cpp +2 -3
- package/common/cpp/core/AudioNode.cpp +78 -58
- package/common/cpp/core/AudioNode.h +10 -1
- package/common/cpp/core/AudioNodeManager.cpp +13 -1
- package/common/cpp/core/AudioNodeManager.h +2 -0
- package/common/cpp/core/AudioScheduledSourceNode.cpp +5 -1
- package/common/cpp/core/BaseAudioContext.cpp +4 -1
- package/common/cpp/core/BaseAudioContext.h +4 -2
- package/common/cpp/core/PeriodicWave.cpp +9 -3
- package/common/cpp/core/StereoPannerNode.cpp +9 -12
- package/common/cpp/utils/FFTFrame.cpp +44 -37
- package/common/cpp/utils/FFTFrame.h +5 -14
- package/ios/core/AudioDecoder.mm +10 -1
- package/ios/core/AudioPlayer.m +23 -23
- package/ios/core/IOSAudioPlayer.mm +3 -3
- package/lib/module/core/AudioBufferSourceNode.js +2 -2
- package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/module/index.js +19 -335
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +18 -0
- package/lib/module/index.web.js.map +1 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/web-core/AnalyserNode.js +48 -0
- package/lib/module/web-core/AnalyserNode.js.map +1 -0
- package/lib/module/web-core/AudioBuffer.js +43 -0
- package/lib/module/web-core/AudioBuffer.js.map +1 -0
- package/lib/module/web-core/AudioBufferSourceNode.js +62 -0
- package/lib/module/web-core/AudioBufferSourceNode.js.map +1 -0
- package/lib/module/web-core/AudioContext.js +69 -0
- package/lib/module/web-core/AudioContext.js.map +1 -0
- package/lib/module/web-core/AudioDestinationNode.js +5 -0
- package/lib/module/web-core/AudioDestinationNode.js.map +1 -0
- package/lib/module/web-core/AudioNode.js +27 -0
- package/lib/module/web-core/AudioNode.js.map +1 -0
- package/lib/module/web-core/AudioParam.js +60 -0
- package/lib/module/web-core/AudioParam.js.map +1 -0
- package/lib/module/web-core/AudioScheduledSourceNode.js +27 -0
- package/lib/module/web-core/AudioScheduledSourceNode.js.map +1 -0
- package/lib/module/web-core/BaseAudioContext.js +2 -0
- package/lib/module/{core/types.js.map → web-core/BaseAudioContext.js.map} +1 -1
- package/lib/module/web-core/BiquadFilterNode.js +35 -0
- package/lib/module/web-core/BiquadFilterNode.js.map +1 -0
- package/lib/module/web-core/GainNode.js +11 -0
- package/lib/module/web-core/GainNode.js.map +1 -0
- package/lib/module/web-core/OscillatorNode.js +25 -0
- package/lib/module/web-core/OscillatorNode.js.map +1 -0
- package/lib/module/web-core/PeriodicWave.js +10 -0
- package/lib/module/web-core/PeriodicWave.js.map +1 -0
- package/lib/module/web-core/StereoPannerNode.js +11 -0
- package/lib/module/web-core/StereoPannerNode.js.map +1 -0
- package/lib/typescript/core/AnalyserNode.d.ts +1 -1
- package/lib/typescript/core/AnalyserNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioNode.d.ts +1 -1
- package/lib/typescript/core/AudioNode.d.ts.map +1 -1
- package/lib/typescript/core/BaseAudioContext.d.ts +1 -1
- package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
- package/lib/typescript/core/BiquadFilterNode.d.ts +1 -1
- package/lib/typescript/core/BiquadFilterNode.d.ts.map +1 -1
- package/lib/typescript/core/OscillatorNode.d.ts +1 -1
- package/lib/typescript/core/OscillatorNode.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +15 -126
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/index.web.d.ts +16 -0
- package/lib/typescript/index.web.d.ts.map +1 -0
- package/lib/typescript/interfaces.d.ts +1 -1
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/lib/typescript/types.d.ts.map +1 -0
- package/lib/typescript/web-core/AnalyserNode.d.ts +18 -0
- package/lib/typescript/web-core/AnalyserNode.d.ts.map +1 -0
- package/lib/typescript/web-core/AudioBuffer.d.ts +13 -0
- package/lib/typescript/web-core/AudioBuffer.d.ts.map +1 -0
- package/lib/typescript/web-core/AudioBufferSourceNode.d.ts +19 -0
- package/lib/typescript/web-core/AudioBufferSourceNode.d.ts.map +1 -0
- package/lib/typescript/web-core/AudioContext.d.ts +30 -0
- package/lib/typescript/web-core/AudioContext.d.ts.map +1 -0
- package/lib/typescript/web-core/AudioDestinationNode.d.ts +4 -0
- package/lib/typescript/web-core/AudioDestinationNode.d.ts.map +1 -0
- package/lib/typescript/web-core/AudioNode.d.ts +15 -0
- package/lib/typescript/web-core/AudioNode.d.ts.map +1 -0
- package/lib/typescript/web-core/AudioParam.d.ts +17 -0
- package/lib/typescript/web-core/AudioParam.d.ts.map +1 -0
- package/lib/typescript/web-core/AudioScheduledSourceNode.d.ts +7 -0
- package/lib/typescript/web-core/AudioScheduledSourceNode.d.ts.map +1 -0
- package/lib/typescript/web-core/BaseAudioContext.d.ts +27 -0
- package/lib/typescript/web-core/BaseAudioContext.d.ts.map +1 -0
- package/lib/typescript/web-core/BiquadFilterNode.d.ts +15 -0
- package/lib/typescript/web-core/BiquadFilterNode.d.ts.map +1 -0
- package/lib/typescript/web-core/GainNode.d.ts +8 -0
- package/lib/typescript/web-core/GainNode.d.ts.map +1 -0
- package/lib/typescript/web-core/OscillatorNode.d.ts +14 -0
- package/lib/typescript/web-core/OscillatorNode.d.ts.map +1 -0
- package/lib/typescript/web-core/PeriodicWave.d.ts +6 -0
- package/lib/typescript/web-core/PeriodicWave.d.ts.map +1 -0
- package/lib/typescript/web-core/StereoPannerNode.d.ts +8 -0
- package/lib/typescript/web-core/StereoPannerNode.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/core/AnalyserNode.ts +1 -1
- package/src/core/AudioBufferSourceNode.ts +2 -2
- package/src/core/AudioNode.ts +1 -1
- package/src/core/BaseAudioContext.ts +1 -1
- package/src/core/BiquadFilterNode.ts +1 -1
- package/src/core/OscillatorNode.ts +1 -1
- package/src/index.ts +30 -568
- package/src/index.web.ts +30 -0
- package/src/interfaces.ts +1 -1
- package/src/web-core/AnalyserNode.tsx +69 -0
- package/src/web-core/AudioBuffer.tsx +79 -0
- package/src/web-core/AudioBufferSourceNode.tsx +94 -0
- package/src/web-core/AudioContext.tsx +114 -0
- package/src/web-core/AudioDestinationNode.tsx +3 -0
- package/src/web-core/AudioNode.tsx +40 -0
- package/src/web-core/AudioParam.tsx +106 -0
- package/src/web-core/AudioScheduledSourceNode.tsx +37 -0
- package/src/web-core/BaseAudioContext.tsx +37 -0
- package/src/web-core/BiquadFilterNode.tsx +62 -0
- package/src/web-core/GainNode.tsx +12 -0
- package/src/web-core/OscillatorNode.tsx +36 -0
- package/src/web-core/PeriodicWave.tsx +8 -0
- package/src/web-core/StereoPannerNode.tsx +12 -0
- package/android/libs/arm64-v8a/libfftw3.a +0 -0
- package/android/libs/armeabi-v7a/libfftw3.a +0 -0
- package/android/libs/include/fftw3.h +0 -413
- package/android/libs/x86/libfftw3.a +0 -0
- package/android/libs/x86_64/libfftw3.a +0 -0
- package/lib/module/index.native.js +0 -21
- package/lib/module/index.native.js.map +0 -1
- package/lib/typescript/core/types.d.ts.map +0 -1
- package/lib/typescript/index.native.d.ts +0 -15
- package/lib/typescript/index.native.d.ts.map +0 -1
- package/src/index.native.ts +0 -27
- /package/lib/module/{core/types.js → types.js} +0 -0
- /package/lib/typescript/{core/types.d.ts → types.d.ts} +0 -0
- /package/src/{core/types.ts → types.ts} +0 -0
package/android/CMakeLists.txt
CHANGED
|
@@ -15,9 +15,10 @@ include("${REACT_NATIVE_DIR}/ReactAndroid/cmake-utils/folly-flags.cmake")
|
|
|
15
15
|
add_compile_options(${folly_FLAGS})
|
|
16
16
|
|
|
17
17
|
file(GLOB_RECURSE ANDROID_CPP_SOURCES CONFIGURE_DEPENDS "src/main/cpp/*.cpp")
|
|
18
|
+
file(GLOB_RECURSE ANDROID_C_SOURCES CONFIGURE_DEPENDS "src/main/cpp/*.c")
|
|
18
19
|
file(GLOB_RECURSE COMMON_CPP_SOURCES CONFIGURE_DEPENDS "../common/cpp/*.cpp")
|
|
19
20
|
|
|
20
|
-
add_library(react-native-audio-api SHARED ${ANDROID_CPP_SOURCES} ${COMMON_CPP_SOURCES})
|
|
21
|
+
add_library(react-native-audio-api SHARED ${ANDROID_CPP_SOURCES} ${ANDROID_C_SOURCES} ${COMMON_CPP_SOURCES})
|
|
21
22
|
|
|
22
23
|
file(GLOB ANDROID_CPP_DIR CONFIGURE_DEPENDS "src/main/cpp/**")
|
|
23
24
|
file(GLOB COMMON_CPP_DIR CONFIGURE_DEPENDS "../common/cpp/**")
|
|
@@ -36,11 +37,8 @@ target_include_directories(
|
|
|
36
37
|
"${REACT_NATIVE_DIR}/ReactAndroid/src/main/jni/react/turbomodule"
|
|
37
38
|
"${REACT_NATIVE_DIR}/ReactCommon/react/nativemodule/core/ReactCommon"
|
|
38
39
|
"${REACT_NATIVE_DIR}/ReactCommon/callinvoker"
|
|
39
|
-
"${CMAKE_CURRENT_SOURCE_DIR}/libs/include"
|
|
40
40
|
)
|
|
41
41
|
|
|
42
|
-
set(fftw3 ${CMAKE_CURRENT_SOURCE_DIR}/libs/${ANDROID_ABI}/libfftw3.a)
|
|
43
|
-
|
|
44
42
|
find_package(ReactAndroid REQUIRED CONFIG)
|
|
45
43
|
find_package(fbjni REQUIRED CONFIG)
|
|
46
44
|
find_package(oboe REQUIRED CONFIG)
|
|
@@ -51,7 +49,6 @@ set(LINK_LIBRARIES
|
|
|
51
49
|
android
|
|
52
50
|
log
|
|
53
51
|
oboe::oboe
|
|
54
|
-
${fftw3}
|
|
55
52
|
)
|
|
56
53
|
|
|
57
54
|
if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
|
package/android/build.gradle
CHANGED
|
@@ -118,13 +118,36 @@ android {
|
|
|
118
118
|
"-DREACT_NATIVE_MINOR_VERSION=${REACT_NATIVE_MINOR_VERSION}",
|
|
119
119
|
"-DANDROID_TOOLCHAIN=clang",
|
|
120
120
|
"-DREACT_NATIVE_DIR=${toPlatformFileString(reactNativeRootDir.path)}",
|
|
121
|
-
"-DIS_NEW_ARCHITECTURE_ENABLED=${IS_NEW_ARCHITECTURE_ENABLED}"
|
|
121
|
+
"-DIS_NEW_ARCHITECTURE_ENABLED=${IS_NEW_ARCHITECTURE_ENABLED}",
|
|
122
|
+
"-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON"
|
|
122
123
|
}
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
126
|
|
|
126
127
|
packagingOptions {
|
|
127
|
-
excludes = [
|
|
128
|
+
excludes = [
|
|
129
|
+
"META-INF",
|
|
130
|
+
"META-INF/**",
|
|
131
|
+
"**/libc++_shared.so",
|
|
132
|
+
"**/libfbjni.so",
|
|
133
|
+
"**/libjsi.so",
|
|
134
|
+
"**/libfolly_json.so",
|
|
135
|
+
"**/libfolly_runtime.so",
|
|
136
|
+
"**/libglog.so",
|
|
137
|
+
"**/libhermes.so",
|
|
138
|
+
"**/libhermes-executor-debug.so",
|
|
139
|
+
"**/libhermes_executor.so",
|
|
140
|
+
"**/libhermestooling.so",
|
|
141
|
+
"**/libreactnativejni.so",
|
|
142
|
+
"**/libturbomodulejsijni.so",
|
|
143
|
+
"**/libreactnative.so",
|
|
144
|
+
"**/libreact_nativemodule_core.so",
|
|
145
|
+
"**/libreact_render*.so",
|
|
146
|
+
"**/librrc_root.so",
|
|
147
|
+
"**/libjscexecutor.so",
|
|
148
|
+
"**/libv8executor.so",
|
|
149
|
+
"**/libreanimated.so"
|
|
150
|
+
]
|
|
128
151
|
}
|
|
129
152
|
|
|
130
153
|
externalNativeBuild {
|
|
@@ -20,6 +20,9 @@ AudioBus *AudioDecoder::decodeWithFilePath(const std::string &path) const {
|
|
|
20
20
|
"AudioDecoder",
|
|
21
21
|
"Failed to initialize decoder for file: %s",
|
|
22
22
|
path.c_str());
|
|
23
|
+
|
|
24
|
+
ma_decoder_uninit(&decoder);
|
|
25
|
+
|
|
23
26
|
return nullptr;
|
|
24
27
|
}
|
|
25
28
|
|
|
@@ -27,7 +30,7 @@ AudioBus *AudioDecoder::decodeWithFilePath(const std::string &path) const {
|
|
|
27
30
|
ma_decoder_get_length_in_pcm_frames(&decoder, &totalFrameCount);
|
|
28
31
|
|
|
29
32
|
auto *audioBus =
|
|
30
|
-
new AudioBus(
|
|
33
|
+
new AudioBus(static_cast<int>(totalFrameCount), 2, sampleRate_);
|
|
31
34
|
auto *buffer = new float[totalFrameCount * 2];
|
|
32
35
|
|
|
33
36
|
ma_uint64 framesDecoded;
|
|
@@ -38,6 +41,12 @@ AudioBus *AudioDecoder::decodeWithFilePath(const std::string &path) const {
|
|
|
38
41
|
"AudioDecoder",
|
|
39
42
|
"Failed to decode audio file: %s",
|
|
40
43
|
path.c_str());
|
|
44
|
+
|
|
45
|
+
delete[] buffer;
|
|
46
|
+
delete audioBus;
|
|
47
|
+
ma_decoder_uninit(&decoder);
|
|
48
|
+
|
|
49
|
+
return nullptr;
|
|
41
50
|
}
|
|
42
51
|
|
|
43
52
|
for (int i = 0; i < decoder.outputChannels; ++i) {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
#include <cassert>
|
|
1
2
|
|
|
2
|
-
#include "AudioPlayer.h"
|
|
3
3
|
#include "AudioArray.h"
|
|
4
4
|
#include "AudioBus.h"
|
|
5
5
|
#include "AudioContext.h"
|
|
6
|
+
#include "AudioPlayer.h"
|
|
6
7
|
#include "Constants.h"
|
|
7
8
|
|
|
8
9
|
namespace audioapi {
|
|
@@ -23,7 +24,7 @@ AudioPlayer::AudioPlayer(
|
|
|
23
24
|
|
|
24
25
|
sampleRate_ = static_cast<float>(mStream_->getSampleRate());
|
|
25
26
|
mBus_ = std::make_shared<AudioBus>(
|
|
26
|
-
|
|
27
|
+
RENDER_QUANTUM_SIZE, CHANNEL_COUNT, sampleRate_);
|
|
27
28
|
isInitialized_ = true;
|
|
28
29
|
}
|
|
29
30
|
|
|
@@ -45,7 +46,7 @@ AudioPlayer::AudioPlayer(
|
|
|
45
46
|
|
|
46
47
|
sampleRate_ = sampleRate;
|
|
47
48
|
mBus_ = std::make_shared<AudioBus>(
|
|
48
|
-
|
|
49
|
+
RENDER_QUANTUM_SIZE, CHANNEL_COUNT, sampleRate_);
|
|
49
50
|
isInitialized_ = true;
|
|
50
51
|
}
|
|
51
52
|
|
|
@@ -80,6 +81,8 @@ DataCallbackResult AudioPlayer::onAudioReady(
|
|
|
80
81
|
auto buffer = static_cast<float *>(audioData);
|
|
81
82
|
int processedFrames = 0;
|
|
82
83
|
|
|
84
|
+
assert(buffer != nullptr);
|
|
85
|
+
|
|
83
86
|
while (processedFrames < numFrames) {
|
|
84
87
|
int framesToProcess =
|
|
85
88
|
std::min(numFrames - processedFrames, RENDER_QUANTUM_SIZE);
|