react-native-audio-api 0.3.0-rc2 → 0.3.2
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/RNAudioAPI.podspec +40 -29
- package/android/CMakeLists.txt +17 -21
- package/android/build.gradle +26 -9
- package/android/src/main/cpp/OnLoad.cpp +1 -1
- package/android/src/main/cpp/core/AudioAPIInstaller.cpp +37 -0
- package/android/src/main/cpp/{AudioAPIInstaller → core}/AudioAPIInstaller.h +5 -16
- package/android/src/main/cpp/{AudioDecoder → core}/AudioDecoder.cpp +0 -8
- package/android/src/main/java/com/swmansion/audioapi/AudioAPIPackage.kt +2 -0
- package/android/src/main/java/com/swmansion/audioapi/nativemodules/AudioAPIModule.kt +6 -4
- package/common/cpp/HostObjects/AudioAPIInstallerHostObject.h +48 -0
- package/common/cpp/HostObjects/AudioBufferHostObject.h +79 -13
- package/common/cpp/HostObjects/AudioBufferSourceNodeHostObject.h +93 -14
- package/common/cpp/HostObjects/AudioContextHostObject.h +10 -21
- package/common/cpp/HostObjects/AudioDestinationNodeHostObject.h +3 -16
- package/common/cpp/HostObjects/AudioNodeHostObject.h +48 -11
- package/common/cpp/HostObjects/AudioParamHostObject.h +93 -14
- package/common/cpp/HostObjects/AudioScheduledSourceNodeHostObject.h +23 -16
- package/common/cpp/HostObjects/BaseAudioContextHostObject.h +131 -14
- package/common/cpp/HostObjects/BiquadFilterNodeHostObject.h +76 -18
- package/common/cpp/HostObjects/GainNodeHostObject.h +10 -15
- package/common/cpp/HostObjects/OscillatorNodeHostObject.h +40 -17
- package/common/cpp/HostObjects/PeriodicWaveHostObject.h +4 -17
- package/common/cpp/HostObjects/StereoPannerNodeHostObject.h +10 -17
- package/common/cpp/core/AudioBufferSourceNode.cpp +181 -73
- package/common/cpp/core/AudioBufferSourceNode.h +41 -1
- package/{android/src/main/cpp/AudioDecoder → common/cpp/core}/AudioDecoder.h +1 -3
- package/common/cpp/core/AudioDestinationNode.h +1 -1
- package/common/cpp/core/AudioParam.cpp +218 -58
- package/common/cpp/core/AudioParam.h +19 -15
- package/common/cpp/core/AudioScheduledSourceNode.cpp +94 -21
- package/common/cpp/core/AudioScheduledSourceNode.h +16 -5
- package/common/cpp/core/BaseAudioContext.cpp +3 -13
- package/common/cpp/core/BaseAudioContext.h +2 -4
- package/common/cpp/core/BiquadFilterNode.cpp +5 -7
- package/common/cpp/{HostObjects → core}/Constants.h +2 -2
- package/common/cpp/core/GainNode.cpp +1 -1
- package/common/cpp/core/OscillatorNode.cpp +11 -5
- package/common/cpp/core/ParamChangeEvent.cpp +58 -0
- package/common/cpp/core/{ParamChange.h → ParamChangeEvent.h} +11 -5
- package/common/cpp/core/StereoPannerNode.cpp +1 -1
- package/common/cpp/jsi/JsiHostObject.cpp +90 -0
- package/common/cpp/jsi/JsiHostObject.h +100 -0
- package/common/cpp/{utils → jsi}/JsiPromise.cpp +10 -9
- package/common/cpp/jsi/JsiPromise.h +48 -0
- package/common/cpp/jsi/RuntimeAwareCache.h +57 -0
- package/common/cpp/jsi/RuntimeLifecycleMonitor.cpp +61 -0
- package/common/cpp/jsi/RuntimeLifecycleMonitor.h +32 -0
- package/common/cpp/types/BiquadFilterType.h +0 -4
- package/common/cpp/types/ChannelCountMode.h +0 -3
- package/common/cpp/types/ChannelInterpretation.h +0 -3
- package/common/cpp/types/ContextState.h +0 -3
- package/common/cpp/types/OscillatorType.h +0 -4
- package/common/cpp/types/ParamChangeEventType.h +13 -0
- package/common/cpp/utils/AudioUtils.cpp +26 -0
- package/common/cpp/utils/AudioUtils.h +12 -0
- package/common/cpp/utils/{ios/FFTFrame.cpp → FFTFrame.cpp} +30 -3
- package/common/cpp/utils/VectorMath.h +7 -33
- package/ios/AudioAPIModule.h +4 -12
- package/ios/AudioAPIModule.mm +26 -25
- package/ios/core/AudioDecoder.mm +45 -0
- package/ios/{AudioPlayer → core}/AudioPlayer.m +2 -1
- package/lib/module/core/AudioBuffer.js +3 -1
- package/lib/module/core/AudioBuffer.js.map +1 -1
- package/lib/module/core/AudioBufferSourceNode.js +19 -2
- package/lib/module/core/AudioBufferSourceNode.js.map +1 -1
- package/lib/module/core/AudioContext.js +3 -1
- package/lib/module/core/AudioContext.js.map +1 -1
- package/lib/module/core/AudioDestinationNode.js +4 -6
- package/lib/module/core/AudioDestinationNode.js.map +1 -1
- package/lib/module/core/AudioNode.js +3 -1
- package/lib/module/core/AudioNode.js.map +1 -1
- package/lib/module/core/AudioParam.js +27 -1
- package/lib/module/core/AudioParam.js.map +1 -1
- package/lib/module/core/AudioScheduledSourceNode.js +4 -5
- package/lib/module/core/AudioScheduledSourceNode.js.map +1 -1
- package/lib/module/core/BaseAudioContext.js +11 -9
- package/lib/module/core/BaseAudioContext.js.map +1 -1
- package/lib/module/core/BiquadFilterNode.js +5 -3
- package/lib/module/core/BiquadFilterNode.js.map +1 -1
- package/lib/module/core/GainNode.js +4 -2
- package/lib/module/core/GainNode.js.map +1 -1
- package/lib/module/core/OscillatorNode.js +5 -3
- package/lib/module/core/OscillatorNode.js.map +1 -1
- package/lib/module/core/PeriodicWave.js +2 -0
- package/lib/module/core/PeriodicWave.js.map +1 -1
- package/lib/module/core/StereoPannerNode.js +4 -2
- package/lib/module/core/StereoPannerNode.js.map +1 -1
- package/lib/module/core/types.js +1 -1
- package/lib/module/errors/IndexSizeError.js +2 -0
- package/lib/module/errors/IndexSizeError.js.map +1 -1
- package/lib/module/errors/InvalidAccessError.js +2 -0
- package/lib/module/errors/InvalidAccessError.js.map +1 -1
- package/lib/module/errors/InvalidStateError.js +2 -0
- package/lib/module/errors/InvalidStateError.js.map +1 -1
- package/lib/module/errors/RangeError.js +2 -0
- package/lib/module/errors/RangeError.js.map +1 -1
- package/lib/module/errors/index.js +6 -4
- package/lib/module/errors/index.js.map +1 -1
- package/lib/module/index.js +35 -10
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.native.js +16 -14
- package/lib/module/index.native.js.map +1 -1
- package/lib/module/interfaces.js +2 -0
- package/lib/module/specs/global.d.js +4 -0
- package/lib/module/{modules → specs}/global.d.js.map +1 -1
- package/lib/module/{utils → specs}/install.js +5 -9
- package/lib/module/specs/install.js.map +1 -0
- package/lib/typescript/core/AudioBuffer.d.ts +2 -0
- package/lib/typescript/core/AudioBuffer.d.ts.map +1 -1
- package/lib/typescript/core/AudioBufferSourceNode.d.ts +7 -0
- package/lib/typescript/core/AudioBufferSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioDestinationNode.d.ts +0 -3
- package/lib/typescript/core/AudioDestinationNode.d.ts.map +1 -1
- package/lib/typescript/core/AudioParam.d.ts +4 -0
- package/lib/typescript/core/AudioParam.d.ts.map +1 -1
- package/lib/typescript/core/AudioScheduledSourceNode.d.ts +0 -3
- package/lib/typescript/core/AudioScheduledSourceNode.d.ts.map +1 -1
- package/lib/typescript/core/PeriodicWave.d.ts +2 -0
- package/lib/typescript/core/PeriodicWave.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +13 -3
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/interfaces.d.ts +8 -0
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/lib/typescript/{utils → specs}/install.d.ts.map +1 -1
- package/metro-config/index.d.ts +5 -0
- package/metro-config/index.js +41 -0
- package/metro-config/tsconfig.json +3 -0
- package/package.json +50 -16
- package/scripts/audioapi_utils.rb +56 -0
- package/src/core/AudioBufferSourceNode.ts +23 -0
- package/src/core/AudioDestinationNode.ts +1 -7
- package/src/core/AudioParam.ts +48 -0
- package/src/core/AudioScheduledSourceNode.ts +0 -5
- package/src/index.native.ts +1 -1
- package/src/index.ts +54 -13
- package/src/interfaces.ts +17 -0
- package/src/{modules → specs}/global.d.ts +2 -0
- package/src/{utils → specs}/install.ts +4 -11
- package/android/src/main/cpp/AudioAPIInstaller/AudioAPIInstaller.cpp +0 -26
- package/common/cpp/AudioAPIInstaller/AudioAPIInstallerHostObject.cpp +0 -58
- package/common/cpp/AudioAPIInstaller/AudioAPIInstallerHostObject.h +0 -51
- package/common/cpp/AudioAPIInstaller/AudioAPIInstallerWrapper.h +0 -38
- package/common/cpp/AudioAPIInstaller/android/AudioAPIInstallerWrapper.cpp +0 -16
- package/common/cpp/AudioAPIInstaller/ios/AudioAPIInstallerWrapper.cpp +0 -12
- package/common/cpp/HostObjects/AudioBufferHostObject.cpp +0 -150
- package/common/cpp/HostObjects/AudioBufferSourceNodeHostObject.cpp +0 -79
- package/common/cpp/HostObjects/AudioContextHostObject.cpp +0 -55
- package/common/cpp/HostObjects/AudioDestinationNodeHostObject.cpp +0 -33
- package/common/cpp/HostObjects/AudioNodeHostObject.cpp +0 -102
- package/common/cpp/HostObjects/AudioParamHostObject.cpp +0 -115
- package/common/cpp/HostObjects/AudioScheduledSourceNodeHostObject.cpp +0 -73
- package/common/cpp/HostObjects/BaseAudioContextHostObject.cpp +0 -250
- package/common/cpp/HostObjects/BiquadFilterNodeHostObject.cpp +0 -125
- package/common/cpp/HostObjects/GainNodeHostObject.cpp +0 -41
- package/common/cpp/HostObjects/OscillatorNodeHostObject.cpp +0 -88
- package/common/cpp/HostObjects/PeriodicWaveHostObject.cpp +0 -33
- package/common/cpp/HostObjects/StereoPannerNodeHostObject.cpp +0 -41
- package/common/cpp/core/ParamChange.cpp +0 -46
- package/common/cpp/utils/JsiPromise.h +0 -48
- package/common/cpp/utils/android/FFTFrame.cpp +0 -23
- package/common/cpp/wrappers/AudioBufferSourceNodeWrapper.cpp +0 -45
- package/common/cpp/wrappers/AudioBufferSourceNodeWrapper.h +0 -26
- package/common/cpp/wrappers/AudioBufferWrapper.cpp +0 -46
- package/common/cpp/wrappers/AudioBufferWrapper.h +0 -30
- package/common/cpp/wrappers/AudioContextWrapper.cpp +0 -17
- package/common/cpp/wrappers/AudioContextWrapper.h +0 -19
- package/common/cpp/wrappers/AudioDestinationNodeWrapper.h +0 -16
- package/common/cpp/wrappers/AudioNodeWrapper.cpp +0 -37
- package/common/cpp/wrappers/AudioNodeWrapper.h +0 -25
- package/common/cpp/wrappers/AudioParamWrapper.cpp +0 -42
- package/common/cpp/wrappers/AudioParamWrapper.h +0 -25
- package/common/cpp/wrappers/AudioScheduledSourceNodeWrapper.cpp +0 -23
- package/common/cpp/wrappers/AudioScheduledSourceNodeWrapper.h +0 -23
- package/common/cpp/wrappers/BaseAudioContextWrapper.cpp +0 -83
- package/common/cpp/wrappers/BaseAudioContextWrapper.h +0 -51
- package/common/cpp/wrappers/BiquadFilterNodeWrapper.cpp +0 -60
- package/common/cpp/wrappers/BiquadFilterNodeWrapper.h +0 -37
- package/common/cpp/wrappers/GainNodeWrapper.cpp +0 -14
- package/common/cpp/wrappers/GainNodeWrapper.h +0 -20
- package/common/cpp/wrappers/OscillatorNodeWrapper.cpp +0 -44
- package/common/cpp/wrappers/OscillatorNodeWrapper.h +0 -31
- package/common/cpp/wrappers/PeriodicWaveWrapper.h +0 -17
- package/common/cpp/wrappers/StereoPannerNodeWrapper.cpp +0 -16
- package/common/cpp/wrappers/StereoPannerNodeWrapper.h +0 -21
- package/ios/AudioDecoder/AudioDecoder.h +0 -17
- package/ios/AudioDecoder/AudioDecoder.m +0 -80
- package/ios/AudioDecoder/IOSAudioDecoder.h +0 -28
- package/ios/AudioDecoder/IOSAudioDecoder.mm +0 -46
- package/lib/module/modules/global.d.js +0 -2
- package/lib/module/utils/install.js.map +0 -1
- /package/android/src/main/cpp/{AudioPlayer → core}/AudioPlayer.cpp +0 -0
- /package/android/src/main/cpp/{AudioPlayer → core}/AudioPlayer.h +0 -0
- /package/{android/libs/include → common/cpp/libs}/miniaudio.h +0 -0
- /package/ios/{AudioPlayer → core}/AudioPlayer.h +0 -0
- /package/ios/{AudioPlayer → core}/IOSAudioPlayer.h +0 -0
- /package/ios/{AudioPlayer → core}/IOSAudioPlayer.mm +0 -0
- /package/lib/typescript/{utils → specs}/install.d.ts +0 -0
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
#include "OscillatorNodeWrapper.h"
|
|
2
|
-
|
|
3
|
-
namespace audioapi {
|
|
4
|
-
|
|
5
|
-
std::shared_ptr<OscillatorNode>
|
|
6
|
-
OscillatorNodeWrapper::getOscillatorNodeFromAudioNode() {
|
|
7
|
-
return std::static_pointer_cast<OscillatorNode>(node_);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
OscillatorNodeWrapper::OscillatorNodeWrapper(
|
|
11
|
-
const std::shared_ptr<OscillatorNode> &oscillator)
|
|
12
|
-
: AudioScheduledSourceNodeWrapper(oscillator) {
|
|
13
|
-
auto frequencyParam = oscillator->getFrequencyParam();
|
|
14
|
-
frequencyParam_ = std::make_shared<AudioParamWrapper>(frequencyParam);
|
|
15
|
-
auto detuneParam = oscillator->getDetuneParam();
|
|
16
|
-
detuneParam_ = std::make_shared<AudioParamWrapper>(detuneParam);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
std::shared_ptr<AudioParamWrapper> OscillatorNodeWrapper::getFrequencyParam()
|
|
20
|
-
const {
|
|
21
|
-
return frequencyParam_;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
std::shared_ptr<AudioParamWrapper> OscillatorNodeWrapper::getDetuneParam()
|
|
25
|
-
const {
|
|
26
|
-
return detuneParam_;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
std::string OscillatorNodeWrapper::getType() {
|
|
30
|
-
auto oscillatorNode_ = getOscillatorNodeFromAudioNode();
|
|
31
|
-
return oscillatorNode_->getType();
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
void OscillatorNodeWrapper::setType(const std::string &type) {
|
|
35
|
-
auto oscillatorNode_ = getOscillatorNodeFromAudioNode();
|
|
36
|
-
oscillatorNode_->setType(type);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
void OscillatorNodeWrapper::setPeriodicWave(
|
|
40
|
-
const std::shared_ptr<PeriodicWaveWrapper> &periodicWave) {
|
|
41
|
-
auto oscillatorNode_ = getOscillatorNodeFromAudioNode();
|
|
42
|
-
oscillatorNode_->setPeriodicWave(periodicWave->periodicWave_);
|
|
43
|
-
}
|
|
44
|
-
} // namespace audioapi
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <memory>
|
|
4
|
-
#include <string>
|
|
5
|
-
|
|
6
|
-
#include "AudioParamWrapper.h"
|
|
7
|
-
#include "AudioScheduledSourceNodeWrapper.h"
|
|
8
|
-
#include "OscillatorNode.h"
|
|
9
|
-
#include "PeriodicWaveWrapper.h"
|
|
10
|
-
|
|
11
|
-
namespace audioapi {
|
|
12
|
-
|
|
13
|
-
class OscillatorNodeWrapper : public AudioScheduledSourceNodeWrapper {
|
|
14
|
-
public:
|
|
15
|
-
explicit OscillatorNodeWrapper(
|
|
16
|
-
const std::shared_ptr<OscillatorNode> &oscillatorNode);
|
|
17
|
-
|
|
18
|
-
[[nodiscard]] std::shared_ptr<AudioParamWrapper> getFrequencyParam() const;
|
|
19
|
-
[[nodiscard]] std::shared_ptr<AudioParamWrapper> getDetuneParam() const;
|
|
20
|
-
std::string getType();
|
|
21
|
-
void setType(const std::string &type);
|
|
22
|
-
void setPeriodicWave(
|
|
23
|
-
const std::shared_ptr<PeriodicWaveWrapper> &periodicWave);
|
|
24
|
-
|
|
25
|
-
private:
|
|
26
|
-
std::shared_ptr<AudioParamWrapper> frequencyParam_;
|
|
27
|
-
std::shared_ptr<AudioParamWrapper> detuneParam_;
|
|
28
|
-
|
|
29
|
-
std::shared_ptr<OscillatorNode> getOscillatorNodeFromAudioNode();
|
|
30
|
-
};
|
|
31
|
-
} // namespace audioapi
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <memory>
|
|
4
|
-
|
|
5
|
-
#include "PeriodicWave.h"
|
|
6
|
-
|
|
7
|
-
namespace audioapi {
|
|
8
|
-
|
|
9
|
-
class PeriodicWaveWrapper {
|
|
10
|
-
public:
|
|
11
|
-
explicit PeriodicWaveWrapper(
|
|
12
|
-
const std::shared_ptr<PeriodicWave> &periodicWave)
|
|
13
|
-
: periodicWave_(periodicWave) {}
|
|
14
|
-
|
|
15
|
-
std::shared_ptr<PeriodicWave> periodicWave_;
|
|
16
|
-
};
|
|
17
|
-
} // namespace audioapi
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
#include "StereoPannerNodeWrapper.h"
|
|
2
|
-
|
|
3
|
-
namespace audioapi {
|
|
4
|
-
|
|
5
|
-
StereoPannerNodeWrapper::StereoPannerNodeWrapper(
|
|
6
|
-
const std::shared_ptr<StereoPannerNode> &stereoPannerNode)
|
|
7
|
-
: AudioNodeWrapper(stereoPannerNode) {
|
|
8
|
-
auto panParam = stereoPannerNode->getPanParam();
|
|
9
|
-
panParam_ = std::make_shared<AudioParamWrapper>(panParam);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
std::shared_ptr<AudioParamWrapper> StereoPannerNodeWrapper::getPanParam()
|
|
13
|
-
const {
|
|
14
|
-
return panParam_;
|
|
15
|
-
}
|
|
16
|
-
} // namespace audioapi
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <memory>
|
|
4
|
-
|
|
5
|
-
#include "AudioNodeWrapper.h"
|
|
6
|
-
#include "AudioParamWrapper.h"
|
|
7
|
-
#include "StereoPannerNode.h"
|
|
8
|
-
|
|
9
|
-
namespace audioapi {
|
|
10
|
-
|
|
11
|
-
class StereoPannerNodeWrapper : public AudioNodeWrapper {
|
|
12
|
-
public:
|
|
13
|
-
explicit StereoPannerNodeWrapper(
|
|
14
|
-
const std::shared_ptr<StereoPannerNode> &stereoPannerNode);
|
|
15
|
-
|
|
16
|
-
[[nodiscard]] std::shared_ptr<AudioParamWrapper> getPanParam() const;
|
|
17
|
-
|
|
18
|
-
private:
|
|
19
|
-
std::shared_ptr<AudioParamWrapper> panParam_;
|
|
20
|
-
};
|
|
21
|
-
} // namespace audioapi
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#import <AVFoundation/AVFoundation.h>
|
|
4
|
-
#import <Foundation/Foundation.h>
|
|
5
|
-
|
|
6
|
-
@interface AudioDecoder : NSObject
|
|
7
|
-
|
|
8
|
-
@property (nonatomic, strong) AVAudioPCMBuffer *buffer;
|
|
9
|
-
@property (nonatomic, assign) int sampleRate;
|
|
10
|
-
|
|
11
|
-
- (instancetype)initWithSampleRate:(int)sampleRate;
|
|
12
|
-
|
|
13
|
-
- (const AudioBufferList *)decodeWithFile:(NSString *)path;
|
|
14
|
-
|
|
15
|
-
- (void)cleanup;
|
|
16
|
-
|
|
17
|
-
@end
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
#import <AudioDecoder.h>
|
|
2
|
-
|
|
3
|
-
@implementation AudioDecoder
|
|
4
|
-
|
|
5
|
-
- (instancetype)initWithSampleRate:(int)sampleRate
|
|
6
|
-
{
|
|
7
|
-
if (self = [super init]) {
|
|
8
|
-
self.sampleRate = sampleRate;
|
|
9
|
-
}
|
|
10
|
-
return self;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
- (const AudioBufferList *)decodeWithFile:(NSString *)path
|
|
14
|
-
{
|
|
15
|
-
NSError *error = nil;
|
|
16
|
-
NSURL *fileURL = [NSURL fileURLWithPath:path];
|
|
17
|
-
AVAudioFile *audioFile = [[AVAudioFile alloc] initForReading:fileURL error:&error];
|
|
18
|
-
|
|
19
|
-
if (error) {
|
|
20
|
-
NSLog(@"Error occurred while opening the audio file: %@", [error localizedDescription]);
|
|
21
|
-
return nil;
|
|
22
|
-
}
|
|
23
|
-
AVAudioPCMBuffer *buffer = [[AVAudioPCMBuffer alloc] initWithPCMFormat:[audioFile processingFormat]
|
|
24
|
-
frameCapacity:[audioFile length]];
|
|
25
|
-
|
|
26
|
-
AVAudioFormat *format = [[AVAudioFormat alloc] initWithCommonFormat:AVAudioPCMFormatFloat32
|
|
27
|
-
sampleRate:self.sampleRate
|
|
28
|
-
channels:buffer.audioBufferList->mNumberBuffers
|
|
29
|
-
interleaved:NO];
|
|
30
|
-
|
|
31
|
-
[audioFile readIntoBuffer:buffer error:&error];
|
|
32
|
-
if (error) {
|
|
33
|
-
NSLog(@"Error occurred while reading the audio file: %@", [error localizedDescription]);
|
|
34
|
-
return nil;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (self.sampleRate != audioFile.processingFormat.sampleRate) {
|
|
38
|
-
self.buffer = [self convertBuffer:buffer ToFormat:format];
|
|
39
|
-
} else {
|
|
40
|
-
self.buffer = buffer;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return self.buffer.audioBufferList;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
- (AVAudioPCMBuffer *)convertBuffer:(AVAudioPCMBuffer *)buffer ToFormat:(AVAudioFormat *)format
|
|
47
|
-
{
|
|
48
|
-
NSError *error = nil;
|
|
49
|
-
AVAudioConverter *converter = [[AVAudioConverter alloc] initFromFormat:buffer.format toFormat:format];
|
|
50
|
-
AVAudioPCMBuffer *convertedBuffer =
|
|
51
|
-
[[AVAudioPCMBuffer alloc] initWithPCMFormat:format frameCapacity:(AVAudioFrameCount)buffer.frameCapacity];
|
|
52
|
-
|
|
53
|
-
AVAudioConverterInputBlock inputBlock =
|
|
54
|
-
^AVAudioBuffer *(AVAudioPacketCount inNumberOfPackets, AVAudioConverterInputStatus *outStatus)
|
|
55
|
-
{
|
|
56
|
-
if (buffer.frameLength > 0) {
|
|
57
|
-
*outStatus = AVAudioConverterInputStatus_HaveData;
|
|
58
|
-
return buffer;
|
|
59
|
-
} else {
|
|
60
|
-
*outStatus = AVAudioConverterInputStatus_NoDataNow;
|
|
61
|
-
return nil;
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
[converter convertToBuffer:convertedBuffer error:&error withInputFromBlock:inputBlock];
|
|
66
|
-
|
|
67
|
-
if (error) {
|
|
68
|
-
NSLog(@"Error occurred while converting the audio file: %@", [error localizedDescription]);
|
|
69
|
-
return nil;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return convertedBuffer;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
- (void)cleanup
|
|
76
|
-
{
|
|
77
|
-
self.buffer = nil;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
@end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <string>
|
|
4
|
-
|
|
5
|
-
#ifdef __OBJC__ // when compiled as Objective-C++
|
|
6
|
-
#import <AudioDecoder.h>
|
|
7
|
-
#else // when compiled as C++
|
|
8
|
-
typedef struct objc_object AudioDecoder;
|
|
9
|
-
#endif // __OBJC__
|
|
10
|
-
|
|
11
|
-
namespace audioapi {
|
|
12
|
-
|
|
13
|
-
class AudioBus;
|
|
14
|
-
|
|
15
|
-
class IOSAudioDecoder {
|
|
16
|
-
protected:
|
|
17
|
-
AudioDecoder *audioDecoder_;
|
|
18
|
-
int sampleRate_;
|
|
19
|
-
|
|
20
|
-
public:
|
|
21
|
-
IOSAudioDecoder(int sampleRate);
|
|
22
|
-
~IOSAudioDecoder();
|
|
23
|
-
|
|
24
|
-
AudioBus *decodeWithFilePath(const std::string &path);
|
|
25
|
-
// TODO: implement this
|
|
26
|
-
AudioBus *decodeWithArrayBuffer();
|
|
27
|
-
};
|
|
28
|
-
} // namespace audioapi
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
#import <AVFoundation/AVFoundation.h>
|
|
2
|
-
|
|
3
|
-
#include <AudioArray.h>
|
|
4
|
-
#include <AudioBus.h>
|
|
5
|
-
#include <IOSAudioDecoder.h>
|
|
6
|
-
|
|
7
|
-
namespace audioapi {
|
|
8
|
-
|
|
9
|
-
IOSAudioDecoder::IOSAudioDecoder(int sampleRate) : sampleRate_(sampleRate)
|
|
10
|
-
{
|
|
11
|
-
audioDecoder_ = [[AudioDecoder alloc] initWithSampleRate:sampleRate_];
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
IOSAudioDecoder::~IOSAudioDecoder()
|
|
15
|
-
{
|
|
16
|
-
[audioDecoder_ cleanup];
|
|
17
|
-
audioDecoder_ = nullptr;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
AudioBus *IOSAudioDecoder::decodeWithFilePath(const std::string &path)
|
|
21
|
-
{
|
|
22
|
-
auto bufferList = [audioDecoder_ decodeWithFile:[NSString stringWithUTF8String:path.c_str()]];
|
|
23
|
-
AudioBus *audioBus;
|
|
24
|
-
if (bufferList) {
|
|
25
|
-
auto numberOfChannels = bufferList->mNumberBuffers;
|
|
26
|
-
auto size = bufferList->mBuffers[0].mDataByteSize / sizeof(float);
|
|
27
|
-
|
|
28
|
-
audioBus = new AudioBus(sampleRate_, size, numberOfChannels);
|
|
29
|
-
|
|
30
|
-
for (int i = 0; i < numberOfChannels; i++) {
|
|
31
|
-
float *data = (float *)bufferList->mBuffers[i].mData;
|
|
32
|
-
memcpy(audioBus->getChannel(i)->getData(), data, sizeof(float) * size);
|
|
33
|
-
}
|
|
34
|
-
} else {
|
|
35
|
-
audioBus = new AudioBus(sampleRate_, 1, 1);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return audioBus;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
AudioBus *IOSAudioDecoder::decodeWithArrayBuffer()
|
|
42
|
-
{
|
|
43
|
-
// TODO: implement his
|
|
44
|
-
return new AudioBus(sampleRate_, 1, 1);
|
|
45
|
-
}
|
|
46
|
-
} // namespace audioapi
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","installModule","AudioAPIModule","getEnforcing","Error","runInstall","verifyInstallation","Module","result","install","global","__AudioAPIInstaller"],"sourceRoot":"../../../src","sources":["utils/install.ts"],"mappings":"AAAA,SAASA,mBAAmB,QAAqB,cAAc;AAM/D,OAAO,SAASC,aAAaA,CAAA,EAAG;EAC9B,MAAMC,cAAc,GAClBF,mBAAmB,CAACG,YAAY,CAAqB,gBAAgB,CAAC;EAExE,IAAID,cAAc,IAAI,IAAI,EAAE;IAC1B,MAAM,IAAIE,KAAK,CACb,iFACF,CAAC;EACH;EAEAC,UAAU,CAACH,cAAc,CAAC;EAC1BI,kBAAkB,CAAC,CAAC;EAEpB,OAAOJ,cAAc;AACvB;AAEA,SAASG,UAAUA,CAACE,MAAW,EAAE;EAC/B,MAAMC,MAAM,GAAGD,MAAM,CAACE,OAAO,CAAC,CAAC;EAE/B,IAAID,MAAM,KAAK,IAAI,EAAE;IACnB,MAAM,IAAIJ,KAAK,CACb,+JAA+JI,MAAM,EACvK,CAAC;EACH;AACF;AAEA,SAASF,kBAAkBA,CAAA,EAAG;EAC5B,IAAII,MAAM,CAACC,mBAAmB,IAAI,IAAI,EAAE;IACtC,MAAM,IAAIP,KAAK,CACb,sJACF,CAAC;EACH;AACF","ignoreList":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|