@siteed/expo-audio-stream 1.0.3 → 1.0.5
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/.size-limit.json +4 -4
- package/README.md +18 -176
- package/android/src/main/java/net/siteed/audiostream/AudioRecorderManager.kt +1 -0
- package/app.plugin.js +1 -1
- package/build/AudioAnalysis/AudioAnalysis.types.d.ts +3 -5
- package/build/AudioAnalysis/AudioAnalysis.types.d.ts.map +1 -1
- package/build/AudioAnalysis/AudioAnalysis.types.js.map +1 -1
- package/build/AudioAnalysis/extractAudioAnalysis.d.ts +19 -3
- package/build/AudioAnalysis/extractAudioAnalysis.d.ts.map +1 -1
- package/build/AudioAnalysis/extractAudioAnalysis.js +14 -27
- package/build/AudioAnalysis/extractAudioAnalysis.js.map +1 -1
- package/build/AudioAnalysis/extractWaveform.d.ts.map +1 -1
- package/build/AudioAnalysis/extractWaveform.js +3 -3
- package/build/AudioAnalysis/extractWaveform.js.map +1 -1
- package/build/AudioRecorder.provider.d.ts +6 -6
- package/build/AudioRecorder.provider.d.ts.map +1 -1
- package/build/AudioRecorder.provider.js +9 -9
- package/build/AudioRecorder.provider.js.map +1 -1
- package/build/ExpoAudioStream.native.d.ts.map +1 -1
- package/build/ExpoAudioStream.native.js +2 -2
- package/build/ExpoAudioStream.native.js.map +1 -1
- package/build/ExpoAudioStream.types.d.ts +20 -18
- package/build/ExpoAudioStream.types.d.ts.map +1 -1
- package/build/ExpoAudioStream.types.js.map +1 -1
- package/build/ExpoAudioStream.web.d.ts +8 -8
- package/build/ExpoAudioStream.web.d.ts.map +1 -1
- package/build/ExpoAudioStream.web.js +40 -22
- package/build/ExpoAudioStream.web.js.map +1 -1
- package/build/ExpoAudioStreamModule.d.ts.map +1 -1
- package/build/ExpoAudioStreamModule.js +8 -7
- package/build/ExpoAudioStreamModule.js.map +1 -1
- package/build/WebRecorder.web.d.ts +8 -8
- package/build/WebRecorder.web.d.ts.map +1 -1
- package/build/WebRecorder.web.js +60 -50
- package/build/WebRecorder.web.js.map +1 -1
- package/build/constants.d.ts +1 -1
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +3 -3
- package/build/constants.js.map +1 -1
- package/build/events.d.ts +16 -4
- package/build/events.d.ts.map +1 -1
- package/build/events.js +8 -8
- package/build/events.js.map +1 -1
- package/build/index.d.ts +8 -8
- package/build/index.d.ts.map +1 -1
- package/build/index.js +6 -6
- package/build/index.js.map +1 -1
- package/build/logger.d.ts +2 -2
- package/build/logger.d.ts.map +1 -1
- package/build/logger.js +7 -11
- package/build/logger.js.map +1 -1
- package/build/useAudioRecorder.d.ts +4 -21
- package/build/useAudioRecorder.d.ts.map +1 -1
- package/build/useAudioRecorder.js +33 -33
- package/build/useAudioRecorder.js.map +1 -1
- package/build/utils/BlobFix.d.ts +9 -0
- package/build/utils/BlobFix.d.ts.map +1 -0
- package/build/utils/BlobFix.js +494 -0
- package/build/utils/BlobFix.js.map +1 -0
- package/build/utils/concatenateBuffers.d.ts +8 -0
- package/build/utils/concatenateBuffers.d.ts.map +1 -0
- package/build/utils/concatenateBuffers.js +21 -0
- package/build/utils/concatenateBuffers.js.map +1 -0
- package/build/utils/convertPCMToFloat32.d.ts +2 -2
- package/build/utils/convertPCMToFloat32.d.ts.map +1 -1
- package/build/utils/convertPCMToFloat32.js +49 -36
- package/build/utils/convertPCMToFloat32.js.map +1 -1
- package/build/utils/encodingToBitDepth.d.ts +1 -1
- package/build/utils/encodingToBitDepth.d.ts.map +1 -1
- package/build/utils/encodingToBitDepth.js +3 -3
- package/build/utils/encodingToBitDepth.js.map +1 -1
- package/build/utils/getWavFileInfo.d.ts +4 -3
- package/build/utils/getWavFileInfo.d.ts.map +1 -1
- package/build/utils/getWavFileInfo.js +18 -15
- package/build/utils/getWavFileInfo.js.map +1 -1
- package/build/utils/writeWavHeader.d.ts.map +1 -1
- package/build/utils/writeWavHeader.js +4 -4
- package/build/utils/writeWavHeader.js.map +1 -1
- package/build/workers/InlineFeaturesExtractor.web.d.ts.map +1 -1
- package/build/workers/InlineFeaturesExtractor.web.js.map +1 -1
- package/build/workers/inlineAudioWebWorker.web.d.ts.map +1 -1
- package/build/workers/inlineAudioWebWorker.web.js.map +1 -1
- package/expo-module.config.json +8 -17
- package/ios/AudioStreamManager.swift +1 -0
- package/ios/ExpoAudioStreamModule.swift +1 -0
- package/ios/RecordingResult.swift +1 -0
- package/package.json +72 -65
- package/plugin/build/index.d.ts +1 -1
- package/plugin/build/index.js +7 -7
- package/plugin/src/index.ts +47 -47
- package/plugin/tsconfig.json +8 -13
- package/src/AudioAnalysis/AudioAnalysis.types.ts +59 -60
- package/src/AudioAnalysis/extractAudioAnalysis.ts +132 -121
- package/src/AudioAnalysis/extractWaveform.ts +18 -18
- package/src/AudioRecorder.provider.tsx +53 -53
- package/src/ExpoAudioStream.native.ts +2 -2
- package/src/ExpoAudioStream.types.ts +56 -53
- package/src/ExpoAudioStream.web.ts +232 -205
- package/src/ExpoAudioStreamModule.ts +17 -16
- package/src/WebRecorder.web.ts +407 -390
- package/src/constants.ts +11 -11
- package/src/events.ts +27 -13
- package/src/index.ts +15 -15
- package/src/logger.ts +15 -18
- package/src/useAudioRecorder.tsx +394 -389
- package/src/utils/BlobFix.ts +550 -0
- package/src/utils/concatenateBuffers.ts +24 -0
- package/src/utils/convertPCMToFloat32.ts +72 -45
- package/src/utils/encodingToBitDepth.ts +14 -14
- package/src/utils/getWavFileInfo.ts +106 -99
- package/src/utils/writeWavHeader.ts +45 -45
- package/src/workers/InlineFeaturesExtractor.web.tsx +1 -1
- package/src/workers/inlineAudioWebWorker.web.tsx +1 -1
- package/tsconfig.json +12 -7
package/src/constants.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
// packages/expo-audio-stream/src/constants.ts
|
|
2
|
-
import { Platform } from
|
|
2
|
+
import { Platform } from 'react-native'
|
|
3
3
|
|
|
4
|
-
import { BitDepth, SampleRate } from
|
|
4
|
+
import { BitDepth, SampleRate } from './ExpoAudioStream.types'
|
|
5
5
|
|
|
6
|
-
export const isWeb = Platform.OS ===
|
|
7
|
-
export const DEBUG_NAMESPACE =
|
|
6
|
+
export const isWeb = Platform.OS === 'web'
|
|
7
|
+
export const DEBUG_NAMESPACE = 'expo-audio-stream'
|
|
8
8
|
|
|
9
9
|
// Constants for identifying chunks in a WAV file
|
|
10
|
-
export const RIFF_HEADER = 0x52494646
|
|
11
|
-
export const WAVE_HEADER = 0x57415645
|
|
12
|
-
export const FMT_CHUNK_ID = 0x666d7420
|
|
13
|
-
export const DATA_CHUNK_ID = 0x64617461
|
|
14
|
-
export const INFO_CHUNK_ID = 0x494e464f
|
|
10
|
+
export const RIFF_HEADER = 0x52494646 // "RIFF"
|
|
11
|
+
export const WAVE_HEADER = 0x57415645 // "WAVE"
|
|
12
|
+
export const FMT_CHUNK_ID = 0x666d7420 // "fmt "
|
|
13
|
+
export const DATA_CHUNK_ID = 0x64617461 // "data"
|
|
14
|
+
export const INFO_CHUNK_ID = 0x494e464f // "INFO"
|
|
15
15
|
|
|
16
16
|
// Default values
|
|
17
|
-
export const DEFAULT_SAMPLE_RATE: SampleRate = 16000
|
|
18
|
-
export const DEFAULT_BIT_DEPTH: BitDepth = 32
|
|
17
|
+
export const DEFAULT_SAMPLE_RATE: SampleRate = 16000
|
|
18
|
+
export const DEFAULT_BIT_DEPTH: BitDepth = 32
|
package/src/events.ts
CHANGED
|
@@ -1,25 +1,39 @@
|
|
|
1
1
|
// packages/expo-audio-stream/src/events.ts
|
|
2
2
|
|
|
3
|
-
import { EventEmitter, type Subscription } from
|
|
3
|
+
import { EventEmitter, type Subscription } from 'expo-modules-core'
|
|
4
4
|
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import { getLogger } from "./logger";
|
|
5
|
+
import { AudioAnalysis } from './AudioAnalysis/AudioAnalysis.types'
|
|
6
|
+
import ExpoAudioStreamModule from './ExpoAudioStreamModule'
|
|
7
|
+
import { getLogger } from './logger'
|
|
9
8
|
|
|
10
|
-
const emitter = new EventEmitter(ExpoAudioStreamModule)
|
|
11
|
-
const logger = getLogger(
|
|
9
|
+
const emitter = new EventEmitter(ExpoAudioStreamModule)
|
|
10
|
+
const logger = getLogger('events')
|
|
11
|
+
|
|
12
|
+
export interface AudioEventPayload {
|
|
13
|
+
encoded?: string
|
|
14
|
+
buffer?: Float32Array
|
|
15
|
+
fileUri: string
|
|
16
|
+
lastEmittedSize: number
|
|
17
|
+
position: number
|
|
18
|
+
deltaSize: number
|
|
19
|
+
totalSize: number
|
|
20
|
+
mimeType: string
|
|
21
|
+
streamUuid: string
|
|
22
|
+
}
|
|
12
23
|
|
|
13
24
|
export function addAudioEventListener(
|
|
14
|
-
|
|
25
|
+
listener: (event: AudioEventPayload) => Promise<void>
|
|
15
26
|
): Subscription {
|
|
16
|
-
|
|
17
|
-
|
|
27
|
+
logger.log('Adding listener for AudioData event')
|
|
28
|
+
return emitter.addListener<AudioEventPayload>('AudioData', listener)
|
|
18
29
|
}
|
|
19
30
|
|
|
31
|
+
// Only aliasing the AudioAnalysis type for the event payload
|
|
32
|
+
export interface AudioAnalysisEvent extends AudioAnalysis {}
|
|
33
|
+
|
|
20
34
|
export function addAudioAnalysisListener(
|
|
21
|
-
|
|
35
|
+
listener: (event: AudioAnalysisEvent) => Promise<void>
|
|
22
36
|
): Subscription {
|
|
23
|
-
|
|
24
|
-
|
|
37
|
+
logger.log('Adding listener for AudioAnalysis event')
|
|
38
|
+
return emitter.addListener<AudioAnalysisEvent>('AudioAnalysis', listener)
|
|
25
39
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
2
|
|
|
3
|
-
import { extractAudioAnalysis } from
|
|
3
|
+
import { extractAudioAnalysis } from './AudioAnalysis/extractAudioAnalysis'
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} from
|
|
8
|
-
import { useAudioRecorder } from
|
|
5
|
+
AudioRecorderProvider,
|
|
6
|
+
useSharedAudioRecorder,
|
|
7
|
+
} from './AudioRecorder.provider'
|
|
8
|
+
import { useAudioRecorder } from './useAudioRecorder'
|
|
9
9
|
|
|
10
|
-
export * from
|
|
11
|
-
export * from
|
|
12
|
-
export * from
|
|
10
|
+
export * from './utils/getWavFileInfo'
|
|
11
|
+
export * from './utils/convertPCMToFloat32'
|
|
12
|
+
export * from './utils/writeWavHeader'
|
|
13
13
|
|
|
14
14
|
export {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
15
|
+
AudioRecorderProvider,
|
|
16
|
+
extractAudioAnalysis,
|
|
17
|
+
useAudioRecorder,
|
|
18
|
+
useSharedAudioRecorder,
|
|
19
|
+
}
|
|
20
20
|
|
|
21
|
-
export type * from
|
|
22
|
-
export type * from
|
|
21
|
+
export type * from './AudioAnalysis/AudioAnalysis.types'
|
|
22
|
+
export type * from './ExpoAudioStream.types'
|
package/src/logger.ts
CHANGED
|
@@ -1,26 +1,23 @@
|
|
|
1
1
|
// packages/expo-audio-stream/src/logger.ts
|
|
2
|
-
import
|
|
2
|
+
import { getLogger as siteedGetLogger } from '@siteed/react-native-logger'
|
|
3
3
|
|
|
4
|
-
import { DEBUG_NAMESPACE } from
|
|
4
|
+
import { DEBUG_NAMESPACE } from './constants'
|
|
5
5
|
|
|
6
6
|
type ConsoleLike = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
log: (message: string, ...args: unknown[]) => void
|
|
8
|
+
debug: (message: string, ...args: unknown[]) => void
|
|
9
|
+
warn: (message: string, ...args: unknown[]) => void
|
|
10
|
+
error: (message: string, ...args: unknown[]) => void
|
|
11
|
+
}
|
|
10
12
|
|
|
11
13
|
export const getLogger = (tag: string): ConsoleLike => {
|
|
12
|
-
|
|
14
|
+
const baseLogger = siteedGetLogger(`${DEBUG_NAMESPACE}:${tag}`)
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
return {
|
|
17
|
+
log: (...args: unknown[]) => baseLogger.log(...(args as [unknown])),
|
|
18
|
+
debug: (...args: unknown[]) => baseLogger.debug(...(args as [unknown])),
|
|
19
|
+
error: (...args: unknown[]) => baseLogger.error(...(args as [unknown])),
|
|
20
|
+
warn: (...args: unknown[]) => baseLogger.warn(...(args as [unknown])),
|
|
21
|
+
}
|
|
22
|
+
}
|
|
19
23
|
|
|
20
|
-
export const enableAllLoggers = () => {
|
|
21
|
-
createDebug.enable(`${DEBUG_NAMESPACE}:*`);
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export const disableAllLoggers = () => {
|
|
25
|
-
createDebug.disable();
|
|
26
|
-
};
|