@siteed/expo-audio-studio 2.18.6 → 3.0.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/README.md +13 -297
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +6 -135
- package/CHANGELOG.md +0 -501
- package/LICENSE +0 -21
- package/android/build.gradle +0 -129
- package/android/src/androidTest/assets/chorus.wav +0 -0
- package/android/src/androidTest/assets/jfk.wav +0 -0
- package/android/src/androidTest/assets/osr_us_000_0010_8k.wav +0 -0
- package/android/src/androidTest/assets/recorder_hello_world.wav +0 -0
- package/android/src/androidTest/java/net/siteed/audiostream/AudioProcessorInstrumentedTest.kt +0 -197
- package/android/src/androidTest/java/net/siteed/audiostream/AudioRecorderInstrumentedTest.kt +0 -541
- package/android/src/androidTest/java/net/siteed/audiostream/AudioRecorderPerformanceInstrumentedTest.kt +0 -234
- package/android/src/androidTest/java/net/siteed/audiostream/integration/AudioFocusStrategyIntegrationTest.kt +0 -332
- package/android/src/androidTest/java/net/siteed/audiostream/integration/BufferDurationIntegrationTest.kt +0 -324
- package/android/src/androidTest/java/net/siteed/audiostream/integration/CompressedOnlyOutputTest.kt +0 -253
- package/android/src/androidTest/java/net/siteed/audiostream/integration/DeviceDisconnectionFallbackTest.kt +0 -218
- package/android/src/androidTest/java/net/siteed/audiostream/integration/EventEmissionIntervalTest.kt +0 -120
- package/android/src/androidTest/java/net/siteed/audiostream/integration/M4aFormatTest.kt +0 -345
- package/android/src/androidTest/java/net/siteed/audiostream/integration/OutputControlIntegrationTest.kt +0 -340
- package/android/src/androidTest/java/net/siteed/audiostream/integration/PcmStreamingDurationTest.kt +0 -252
- package/android/src/androidTest/java/net/siteed/audiostream/integration/README.md +0 -95
- package/android/src/androidTest/java/net/siteed/audiostream/integration/run_integration_tests.sh +0 -43
- package/android/src/main/AndroidManifest.xml +0 -30
- package/android/src/main/java/net/siteed/audiostream/AudioAnalysisData.kt +0 -188
- package/android/src/main/java/net/siteed/audiostream/AudioDataEncoder.kt +0 -9
- package/android/src/main/java/net/siteed/audiostream/AudioDeviceManager.kt +0 -1741
- package/android/src/main/java/net/siteed/audiostream/AudioFileHandler.kt +0 -136
- package/android/src/main/java/net/siteed/audiostream/AudioFormatUtils.kt +0 -354
- package/android/src/main/java/net/siteed/audiostream/AudioNotificationsManager.kt +0 -439
- package/android/src/main/java/net/siteed/audiostream/AudioProcessor.kt +0 -2237
- package/android/src/main/java/net/siteed/audiostream/AudioRecorderManager.kt +0 -2141
- package/android/src/main/java/net/siteed/audiostream/AudioRecordingService.kt +0 -167
- package/android/src/main/java/net/siteed/audiostream/AudioTrimmer.kt +0 -1099
- package/android/src/main/java/net/siteed/audiostream/Constants.kt +0 -37
- package/android/src/main/java/net/siteed/audiostream/EventSender.kt +0 -7
- package/android/src/main/java/net/siteed/audiostream/ExpoAudioStreamModule.kt +0 -1113
- package/android/src/main/java/net/siteed/audiostream/FFT.kt +0 -99
- package/android/src/main/java/net/siteed/audiostream/Features.kt +0 -98
- package/android/src/main/java/net/siteed/audiostream/LogUtils.kt +0 -93
- package/android/src/main/java/net/siteed/audiostream/NotificationConfig.kt +0 -72
- package/android/src/main/java/net/siteed/audiostream/PermissionUtils.kt +0 -68
- package/android/src/main/java/net/siteed/audiostream/RecordingActionReceiver.kt +0 -59
- package/android/src/main/java/net/siteed/audiostream/RecordingConfig.kt +0 -257
- package/android/src/main/java/net/siteed/audiostream/WaveformConfig.kt +0 -19
- package/android/src/main/java/net/siteed/audiostream/WaveformRenderer.kt +0 -159
- package/android/src/main/res/drawable/ic_default_action_icon.xml +0 -16
- package/android/src/main/res/drawable/ic_microphone.xml +0 -13
- package/android/src/main/res/drawable/ic_pause.xml +0 -10
- package/android/src/main/res/drawable/ic_play.xml +0 -10
- package/android/src/main/res/drawable/ic_stop.xml +0 -10
- package/android/src/main/res/layout/notification_recording.xml +0 -37
- package/android/src/test/java/net/siteed/audiostream/AudioFileHandlerTest.kt +0 -279
- package/android/src/test/java/net/siteed/audiostream/AudioFocusStrategyTest.kt +0 -249
- package/android/src/test/java/net/siteed/audiostream/AudioFormatTest.kt +0 -151
- package/android/src/test/java/net/siteed/audiostream/AudioFormatUtilsTest.kt +0 -273
- package/android/src/test/java/net/siteed/audiostream/DeviceDisconnectionFallbackUnitTest.kt +0 -140
- package/android/src/test/resources/chorus.wav +0 -0
- package/android/src/test/resources/generate_test_audio.py +0 -94
- package/android/src/test/resources/jfk.wav +0 -0
- package/android/src/test/resources/osr_us_000_0010_8k.wav +0 -0
- package/android/src/test/resources/recorder_hello_world.wav +0 -0
- package/app.plugin.js +0 -3
- package/build/cjs/AudioAnalysis/AudioAnalysis.types.js +0 -4
- package/build/cjs/AudioAnalysis/AudioAnalysis.types.js.map +0 -1
- package/build/cjs/AudioAnalysis/extractAudioAnalysis.js +0 -210
- package/build/cjs/AudioAnalysis/extractAudioAnalysis.js.map +0 -1
- package/build/cjs/AudioAnalysis/extractAudioData.js +0 -21
- package/build/cjs/AudioAnalysis/extractAudioData.js.map +0 -1
- package/build/cjs/AudioAnalysis/extractMelSpectrogram.js +0 -92
- package/build/cjs/AudioAnalysis/extractMelSpectrogram.js.map +0 -1
- package/build/cjs/AudioAnalysis/extractPreview.js +0 -28
- package/build/cjs/AudioAnalysis/extractPreview.js.map +0 -1
- package/build/cjs/AudioAnalysis/extractWaveform.js +0 -18
- package/build/cjs/AudioAnalysis/extractWaveform.js.map +0 -1
- package/build/cjs/AudioDeviceManager.js +0 -689
- package/build/cjs/AudioDeviceManager.js.map +0 -1
- package/build/cjs/AudioRecorder.provider.js +0 -78
- package/build/cjs/AudioRecorder.provider.js.map +0 -1
- package/build/cjs/ExpoAudioStream.native.js +0 -8
- package/build/cjs/ExpoAudioStream.native.js.map +0 -1
- package/build/cjs/ExpoAudioStream.types.js +0 -11
- package/build/cjs/ExpoAudioStream.types.js.map +0 -1
- package/build/cjs/ExpoAudioStream.web.js +0 -708
- package/build/cjs/ExpoAudioStream.web.js.map +0 -1
- package/build/cjs/ExpoAudioStreamModule.js +0 -718
- package/build/cjs/ExpoAudioStreamModule.js.map +0 -1
- package/build/cjs/WebRecorder.web.js +0 -777
- package/build/cjs/WebRecorder.web.js.map +0 -1
- package/build/cjs/constants/platformLimitations.js +0 -99
- package/build/cjs/constants/platformLimitations.js.map +0 -1
- package/build/cjs/constants.js +0 -17
- package/build/cjs/constants.js.map +0 -1
- package/build/cjs/events.js +0 -29
- package/build/cjs/events.js.map +0 -1
- package/build/cjs/hooks/useAudioDevices.js +0 -179
- package/build/cjs/hooks/useAudioDevices.js.map +0 -1
- package/build/cjs/index.js +0 -58
- package/build/cjs/index.js.map +0 -1
- package/build/cjs/trimAudio.js +0 -76
- package/build/cjs/trimAudio.js.map +0 -1
- package/build/cjs/useAudioRecorder.js +0 -518
- package/build/cjs/useAudioRecorder.js.map +0 -1
- package/build/cjs/utils/BlobFix.js +0 -502
- package/build/cjs/utils/BlobFix.js.map +0 -1
- package/build/cjs/utils/audioProcessing.js +0 -136
- package/build/cjs/utils/audioProcessing.js.map +0 -1
- package/build/cjs/utils/cleanNativeOptions.js +0 -22
- package/build/cjs/utils/cleanNativeOptions.js.map +0 -1
- package/build/cjs/utils/concatenateBuffers.js +0 -25
- package/build/cjs/utils/concatenateBuffers.js.map +0 -1
- package/build/cjs/utils/convertPCMToFloat32.js +0 -124
- package/build/cjs/utils/convertPCMToFloat32.js.map +0 -1
- package/build/cjs/utils/crc32.js +0 -52
- package/build/cjs/utils/crc32.js.map +0 -1
- package/build/cjs/utils/encodingToBitDepth.js +0 -17
- package/build/cjs/utils/encodingToBitDepth.js.map +0 -1
- package/build/cjs/utils/getWavFileInfo.js +0 -96
- package/build/cjs/utils/getWavFileInfo.js.map +0 -1
- package/build/cjs/utils/writeWavHeader.js +0 -88
- package/build/cjs/utils/writeWavHeader.js.map +0 -1
- package/build/cjs/workers/InlineFeaturesExtractor.web.js +0 -859
- package/build/cjs/workers/InlineFeaturesExtractor.web.js.map +0 -1
- package/build/cjs/workers/inlineAudioWebWorker.web.js +0 -184
- package/build/cjs/workers/inlineAudioWebWorker.web.js.map +0 -1
- package/build/esm/AudioAnalysis/AudioAnalysis.types.js +0 -3
- package/build/esm/AudioAnalysis/AudioAnalysis.types.js.map +0 -1
- package/build/esm/AudioAnalysis/extractAudioAnalysis.js +0 -202
- package/build/esm/AudioAnalysis/extractAudioAnalysis.js.map +0 -1
- package/build/esm/AudioAnalysis/extractAudioData.js +0 -14
- package/build/esm/AudioAnalysis/extractAudioData.js.map +0 -1
- package/build/esm/AudioAnalysis/extractMelSpectrogram.js +0 -89
- package/build/esm/AudioAnalysis/extractMelSpectrogram.js.map +0 -1
- package/build/esm/AudioAnalysis/extractPreview.js +0 -25
- package/build/esm/AudioAnalysis/extractPreview.js.map +0 -1
- package/build/esm/AudioAnalysis/extractWaveform.js +0 -11
- package/build/esm/AudioAnalysis/extractWaveform.js.map +0 -1
- package/build/esm/AudioDeviceManager.js +0 -682
- package/build/esm/AudioDeviceManager.js.map +0 -1
- package/build/esm/AudioRecorder.provider.js +0 -40
- package/build/esm/AudioRecorder.provider.js.map +0 -1
- package/build/esm/ExpoAudioStream.native.js +0 -6
- package/build/esm/ExpoAudioStream.native.js.map +0 -1
- package/build/esm/ExpoAudioStream.types.js +0 -8
- package/build/esm/ExpoAudioStream.types.js.map +0 -1
- package/build/esm/ExpoAudioStream.web.js +0 -704
- package/build/esm/ExpoAudioStream.web.js.map +0 -1
- package/build/esm/ExpoAudioStreamModule.js +0 -713
- package/build/esm/ExpoAudioStreamModule.js.map +0 -1
- package/build/esm/WebRecorder.web.js +0 -773
- package/build/esm/WebRecorder.web.js.map +0 -1
- package/build/esm/constants/platformLimitations.js +0 -90
- package/build/esm/constants/platformLimitations.js.map +0 -1
- package/build/esm/constants.js +0 -14
- package/build/esm/constants.js.map +0 -1
- package/build/esm/events.js +0 -21
- package/build/esm/events.js.map +0 -1
- package/build/esm/hooks/useAudioDevices.js +0 -176
- package/build/esm/hooks/useAudioDevices.js.map +0 -1
- package/build/esm/index.js +0 -20
- package/build/esm/index.js.map +0 -1
- package/build/esm/trimAudio.js +0 -69
- package/build/esm/trimAudio.js.map +0 -1
- package/build/esm/useAudioRecorder.js +0 -512
- package/build/esm/useAudioRecorder.js.map +0 -1
- package/build/esm/utils/BlobFix.js +0 -498
- package/build/esm/utils/BlobFix.js.map +0 -1
- package/build/esm/utils/audioProcessing.js +0 -133
- package/build/esm/utils/audioProcessing.js.map +0 -1
- package/build/esm/utils/cleanNativeOptions.js +0 -19
- package/build/esm/utils/cleanNativeOptions.js.map +0 -1
- package/build/esm/utils/concatenateBuffers.js +0 -21
- package/build/esm/utils/concatenateBuffers.js.map +0 -1
- package/build/esm/utils/convertPCMToFloat32.js +0 -120
- package/build/esm/utils/convertPCMToFloat32.js.map +0 -1
- package/build/esm/utils/crc32.js +0 -50
- package/build/esm/utils/crc32.js.map +0 -1
- package/build/esm/utils/encodingToBitDepth.js +0 -13
- package/build/esm/utils/encodingToBitDepth.js.map +0 -1
- package/build/esm/utils/getWavFileInfo.js +0 -92
- package/build/esm/utils/getWavFileInfo.js.map +0 -1
- package/build/esm/utils/writeWavHeader.js +0 -84
- package/build/esm/utils/writeWavHeader.js.map +0 -1
- package/build/esm/workers/InlineFeaturesExtractor.web.js +0 -856
- package/build/esm/workers/InlineFeaturesExtractor.web.js.map +0 -1
- package/build/esm/workers/inlineAudioWebWorker.web.js +0 -181
- package/build/esm/workers/inlineAudioWebWorker.web.js.map +0 -1
- package/build/types/AudioAnalysis/AudioAnalysis.types.d.ts +0 -196
- package/build/types/AudioAnalysis/AudioAnalysis.types.d.ts.map +0 -1
- package/build/types/AudioAnalysis/extractAudioAnalysis.d.ts +0 -74
- package/build/types/AudioAnalysis/extractAudioAnalysis.d.ts.map +0 -1
- package/build/types/AudioAnalysis/extractAudioData.d.ts +0 -3
- package/build/types/AudioAnalysis/extractAudioData.d.ts.map +0 -1
- package/build/types/AudioAnalysis/extractMelSpectrogram.d.ts +0 -14
- package/build/types/AudioAnalysis/extractMelSpectrogram.d.ts.map +0 -1
- package/build/types/AudioAnalysis/extractPreview.d.ts +0 -11
- package/build/types/AudioAnalysis/extractPreview.d.ts.map +0 -1
- package/build/types/AudioAnalysis/extractWaveform.d.ts +0 -8
- package/build/types/AudioAnalysis/extractWaveform.d.ts.map +0 -1
- package/build/types/AudioDeviceManager.d.ts +0 -187
- package/build/types/AudioDeviceManager.d.ts.map +0 -1
- package/build/types/AudioRecorder.provider.d.ts +0 -11
- package/build/types/AudioRecorder.provider.d.ts.map +0 -1
- package/build/types/ExpoAudioStream.native.d.ts +0 -3
- package/build/types/ExpoAudioStream.native.d.ts.map +0 -1
- package/build/types/ExpoAudioStream.types.d.ts +0 -738
- package/build/types/ExpoAudioStream.types.d.ts.map +0 -1
- package/build/types/ExpoAudioStream.web.d.ts +0 -96
- package/build/types/ExpoAudioStream.web.d.ts.map +0 -1
- package/build/types/ExpoAudioStreamModule.d.ts +0 -3
- package/build/types/ExpoAudioStreamModule.d.ts.map +0 -1
- package/build/types/WebRecorder.web.d.ts +0 -198
- package/build/types/WebRecorder.web.d.ts.map +0 -1
- package/build/types/constants/platformLimitations.d.ts +0 -40
- package/build/types/constants/platformLimitations.d.ts.map +0 -1
- package/build/types/constants.d.ts +0 -11
- package/build/types/constants.d.ts.map +0 -1
- package/build/types/events.d.ts +0 -26
- package/build/types/events.d.ts.map +0 -1
- package/build/types/hooks/useAudioDevices.d.ts +0 -15
- package/build/types/hooks/useAudioDevices.d.ts.map +0 -1
- package/build/types/index.d.ts +0 -18
- package/build/types/index.d.ts.map +0 -1
- package/build/types/trimAudio.d.ts +0 -25
- package/build/types/trimAudio.d.ts.map +0 -1
- package/build/types/useAudioRecorder.d.ts +0 -22
- package/build/types/useAudioRecorder.d.ts.map +0 -1
- package/build/types/utils/BlobFix.d.ts +0 -9
- package/build/types/utils/BlobFix.d.ts.map +0 -1
- package/build/types/utils/audioProcessing.d.ts +0 -24
- package/build/types/utils/audioProcessing.d.ts.map +0 -1
- package/build/types/utils/cleanNativeOptions.d.ts +0 -15
- package/build/types/utils/cleanNativeOptions.d.ts.map +0 -1
- package/build/types/utils/concatenateBuffers.d.ts +0 -8
- package/build/types/utils/concatenateBuffers.d.ts.map +0 -1
- package/build/types/utils/convertPCMToFloat32.d.ts +0 -13
- package/build/types/utils/convertPCMToFloat32.d.ts.map +0 -1
- package/build/types/utils/crc32.d.ts +0 -7
- package/build/types/utils/crc32.d.ts.map +0 -1
- package/build/types/utils/encodingToBitDepth.d.ts +0 -5
- package/build/types/utils/encodingToBitDepth.d.ts.map +0 -1
- package/build/types/utils/getWavFileInfo.d.ts +0 -26
- package/build/types/utils/getWavFileInfo.d.ts.map +0 -1
- package/build/types/utils/writeWavHeader.d.ts +0 -34
- package/build/types/utils/writeWavHeader.d.ts.map +0 -1
- package/build/types/workers/InlineFeaturesExtractor.web.d.ts +0 -2
- package/build/types/workers/InlineFeaturesExtractor.web.d.ts.map +0 -1
- package/build/types/workers/inlineAudioWebWorker.web.d.ts +0 -2
- package/build/types/workers/inlineAudioWebWorker.web.d.ts.map +0 -1
- package/expo-module.config.json +0 -10
- package/ios/AudioAnalysisData.swift +0 -74
- package/ios/AudioDeviceManager.swift +0 -670
- package/ios/AudioNotificationManager.swift +0 -154
- package/ios/AudioProcessingHelpers.swift +0 -743
- package/ios/AudioProcessor.swift +0 -1151
- package/ios/AudioStreamError.swift +0 -7
- package/ios/AudioStreamManager.swift +0 -2369
- package/ios/AudioStreamManagerDelegate.swift +0 -16
- package/ios/DataPoint.swift +0 -54
- package/ios/DecodingConfig.swift +0 -59
- package/ios/ExpoAudioStream.podspec +0 -33
- package/ios/ExpoAudioStreamModule.swift +0 -1019
- package/ios/ExpoAudioStudioTests/AudioFileHandlerTests.swift +0 -338
- package/ios/ExpoAudioStudioTests/AudioFormatUtilsTests.swift +0 -331
- package/ios/ExpoAudioStudioTests/AudioTestHelpers.swift +0 -130
- package/ios/ExpoAudioStudioTests/CompressedOnlyOutputTests.swift +0 -294
- package/ios/ExpoAudioStudioTests/EventEmissionIntervalTests.swift +0 -105
- package/ios/ExpoAudioStudioTests/Info.plist +0 -22
- package/ios/ExpoAudioStudioTests/README.md +0 -39
- package/ios/ExpoAudioStudioTests/SimpleAudioTest.swift +0 -98
- package/ios/ExpoAudioStudioTests/TestAudioGenerator.swift +0 -75
- package/ios/FFT.swift +0 -62
- package/ios/Features.swift +0 -95
- package/ios/ISSUE_IOS.md +0 -68
- package/ios/Logger.swift +0 -39
- package/ios/NotificationExtension.swift +0 -15
- package/ios/RecordingResult.swift +0 -22
- package/ios/RecordingSettings.swift +0 -308
- package/ios/WaveformExtractor.swift +0 -105
- package/ios/tests/README.md +0 -41
- package/ios/tests/integration/buffer_and_fallback_test.swift +0 -178
- package/ios/tests/integration/buffer_duration_test.swift +0 -185
- package/ios/tests/integration/compressed_only_output_test.swift +0 -271
- package/ios/tests/integration/output_control_test.swift +0 -322
- package/ios/tests/integration/run_integration_tests.sh +0 -37
- package/ios/tests/opus_support_test_macos.swift +0 -154
- package/ios/tests/standalone/audio_processing_test.swift +0 -144
- package/ios/tests/standalone/audio_recording_test.swift +0 -277
- package/ios/tests/standalone/audio_streaming_test.swift +0 -249
- package/ios/tests/standalone/standalone_test.swift +0 -144
- package/plugin/build/index.cjs +0 -194
- package/plugin/build/index.d.cts +0 -22
- package/plugin/build/index.js +0 -194
- package/plugin/src/index.ts +0 -285
- package/plugin/tsconfig.json +0 -10
- package/plugin/tsconfig.tsbuildinfo +0 -1
- package/src/AudioAnalysis/AudioAnalysis.types.ts +0 -224
- package/src/AudioAnalysis/extractAudioAnalysis.ts +0 -344
- package/src/AudioAnalysis/extractAudioData.ts +0 -17
- package/src/AudioAnalysis/extractMelSpectrogram.ts +0 -154
- package/src/AudioAnalysis/extractPreview.ts +0 -34
- package/src/AudioAnalysis/extractWaveform.ts +0 -22
- package/src/AudioDeviceManager.ts +0 -803
- package/src/AudioRecorder.provider.tsx +0 -57
- package/src/ExpoAudioStream.native.ts +0 -6
- package/src/ExpoAudioStream.types.ts +0 -874
- package/src/ExpoAudioStream.web.ts +0 -905
- package/src/ExpoAudioStreamModule.ts +0 -990
- package/src/WebRecorder.web.ts +0 -1005
- package/src/constants/platformLimitations.ts +0 -118
- package/src/constants.ts +0 -18
- package/src/events.ts +0 -60
- package/src/hooks/useAudioDevices.ts +0 -213
- package/src/index.ts +0 -54
- package/src/trimAudio.ts +0 -94
- package/src/types/crc-32.d.ts +0 -9
- package/src/useAudioRecorder.tsx +0 -766
- package/src/utils/BlobFix.ts +0 -561
- package/src/utils/audioProcessing.ts +0 -205
- package/src/utils/cleanNativeOptions.ts +0 -18
- package/src/utils/concatenateBuffers.ts +0 -24
- package/src/utils/convertPCMToFloat32.ts +0 -170
- package/src/utils/crc32.ts +0 -59
- package/src/utils/encodingToBitDepth.ts +0 -18
- package/src/utils/getWavFileInfo.ts +0 -132
- package/src/utils/writeWavHeader.ts +0 -115
- package/src/workers/InlineFeaturesExtractor.web.tsx +0 -855
- package/src/workers/inlineAudioWebWorker.web.tsx +0 -180
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
import { AudioDevice, DeviceDisconnectionBehavior, ConsoleLike } from './ExpoAudioStream.types';
|
|
2
|
-
/**
|
|
3
|
-
* Class that provides a cross-platform API for managing audio input devices
|
|
4
|
-
*
|
|
5
|
-
* EVENT API SPECIFICATION:
|
|
6
|
-
* ========================
|
|
7
|
-
*
|
|
8
|
-
* Device Events (deviceChangedEvent):
|
|
9
|
-
* ```
|
|
10
|
-
* {
|
|
11
|
-
* type: "deviceConnected" | "deviceDisconnected",
|
|
12
|
-
* deviceId: string
|
|
13
|
-
* }
|
|
14
|
-
* ```
|
|
15
|
-
*
|
|
16
|
-
* Recording Interruption Events (recordingInterruptedEvent):
|
|
17
|
-
* ```
|
|
18
|
-
* {
|
|
19
|
-
* reason: "userPaused" | "userResumed" | "audioFocusLoss" | "audioFocusGain" |
|
|
20
|
-
* "deviceFallback" | "deviceSwitchFailed" | "phoneCall" | "phoneCallEnded",
|
|
21
|
-
* isPaused: boolean,
|
|
22
|
-
* timestamp: number
|
|
23
|
-
* }
|
|
24
|
-
* ```
|
|
25
|
-
*
|
|
26
|
-
* NOTE: Device events use "type" field, interruption events use "reason" field.
|
|
27
|
-
* This is intentional to distinguish between different event categories.
|
|
28
|
-
*/
|
|
29
|
-
export declare class AudioDeviceManager {
|
|
30
|
-
private eventEmitter;
|
|
31
|
-
private currentDeviceId;
|
|
32
|
-
private availableDevices;
|
|
33
|
-
private deviceChangeListeners;
|
|
34
|
-
private webDeviceChangeHandler?;
|
|
35
|
-
private lastRefreshTime;
|
|
36
|
-
private refreshInProgress;
|
|
37
|
-
private refreshDebounceMs;
|
|
38
|
-
private logger?;
|
|
39
|
-
private temporarilyDisconnectedDevices;
|
|
40
|
-
private disconnectionTimeouts;
|
|
41
|
-
private readonly DISCONNECTION_TIMEOUT_MS;
|
|
42
|
-
constructor(options?: {
|
|
43
|
-
logger?: ConsoleLike;
|
|
44
|
-
});
|
|
45
|
-
/**
|
|
46
|
-
* Set up device event listeners for the current platform
|
|
47
|
-
*/
|
|
48
|
-
private setupDeviceEventListeners;
|
|
49
|
-
/**
|
|
50
|
-
* Set up native device event listener for iOS/Android
|
|
51
|
-
*/
|
|
52
|
-
private setupNativeDeviceEventListener;
|
|
53
|
-
/**
|
|
54
|
-
* Initialize the device manager with a logger
|
|
55
|
-
* @param logger A logger instance that implements the ConsoleLike interface
|
|
56
|
-
* @returns The manager instance for chaining
|
|
57
|
-
*/
|
|
58
|
-
initWithLogger(logger: ConsoleLike): AudioDeviceManager;
|
|
59
|
-
/**
|
|
60
|
-
* Set the logger instance
|
|
61
|
-
* @param logger A logger instance that implements the ConsoleLike interface
|
|
62
|
-
*/
|
|
63
|
-
setLogger(logger: ConsoleLike): void;
|
|
64
|
-
/**
|
|
65
|
-
* Initialize or reinitialize device detection
|
|
66
|
-
* Useful for restarting device detection if initial setup failed
|
|
67
|
-
*/
|
|
68
|
-
initializeDeviceDetection(): void;
|
|
69
|
-
/**
|
|
70
|
-
* Get the current logger instance
|
|
71
|
-
* @returns The logger instance or undefined if not set
|
|
72
|
-
*/
|
|
73
|
-
getLogger(): ConsoleLike | undefined;
|
|
74
|
-
/**
|
|
75
|
-
* Get all available audio input devices
|
|
76
|
-
* @param options Optional settings to force refresh the device list. Can include a refresh flag.
|
|
77
|
-
* @returns Promise resolving to an array of audio devices conforming to AudioDevice interface
|
|
78
|
-
*/
|
|
79
|
-
getAvailableDevices(options?: {
|
|
80
|
-
refresh?: boolean;
|
|
81
|
-
}): Promise<AudioDevice[]>;
|
|
82
|
-
/**
|
|
83
|
-
* Get the currently selected audio input device
|
|
84
|
-
* @returns Promise resolving to the current device (conforming to AudioDevice) or null
|
|
85
|
-
*/
|
|
86
|
-
getCurrentDevice(): Promise<AudioDevice | null>;
|
|
87
|
-
/**
|
|
88
|
-
* Select a specific audio input device for recording
|
|
89
|
-
* @param deviceId The ID of the device to select
|
|
90
|
-
* @returns Promise resolving to a boolean indicating success
|
|
91
|
-
*/
|
|
92
|
-
selectDevice(deviceId: string): Promise<boolean>;
|
|
93
|
-
/**
|
|
94
|
-
* Reset to the default audio input device
|
|
95
|
-
* @returns Promise resolving to a boolean indicating success
|
|
96
|
-
*/
|
|
97
|
-
resetToDefaultDevice(): Promise<boolean>;
|
|
98
|
-
/**
|
|
99
|
-
* Register a listener for device changes
|
|
100
|
-
* @param listener Function to call when devices change (receives AudioDevice[])
|
|
101
|
-
* @returns Function to remove the listener
|
|
102
|
-
*/
|
|
103
|
-
addDeviceChangeListener(listener: (devices: AudioDevice[]) => void): () => void;
|
|
104
|
-
/**
|
|
105
|
-
* Mark a device as temporarily disconnected (for UI filtering)
|
|
106
|
-
* @param deviceId The ID of the device that was disconnected
|
|
107
|
-
* @param notify Whether to notify listeners immediately (default: true)
|
|
108
|
-
*/
|
|
109
|
-
markDeviceAsDisconnected(deviceId: string, notify?: boolean): void;
|
|
110
|
-
/**
|
|
111
|
-
* Mark a device as reconnected (remove from disconnected set)
|
|
112
|
-
* @param deviceId The ID of the device that was reconnected
|
|
113
|
-
*/
|
|
114
|
-
markDeviceAsReconnected(deviceId: string): void;
|
|
115
|
-
/**
|
|
116
|
-
* Get filtered device list (excluding temporarily disconnected devices)
|
|
117
|
-
* @returns Array of available devices excluding temporarily disconnected ones
|
|
118
|
-
*/
|
|
119
|
-
private getFilteredDevices;
|
|
120
|
-
/**
|
|
121
|
-
* Get the raw device list (including temporarily disconnected devices)
|
|
122
|
-
* @returns Array of all available devices from native layer
|
|
123
|
-
*/
|
|
124
|
-
getRawDevices(): AudioDevice[];
|
|
125
|
-
/**
|
|
126
|
-
* Get the IDs of temporarily disconnected devices
|
|
127
|
-
* @returns Set of device IDs that are temporarily hidden from UI
|
|
128
|
-
*/
|
|
129
|
-
getTemporarilyDisconnectedDeviceIds(): ReadonlySet<string>;
|
|
130
|
-
/**
|
|
131
|
-
* Clean up timeouts and listeners (useful for testing or cleanup)
|
|
132
|
-
*/
|
|
133
|
-
cleanup(): void;
|
|
134
|
-
/**
|
|
135
|
-
* Force refresh devices without debouncing (for device events)
|
|
136
|
-
* @returns Promise resolving to the updated device list (AudioDevice[])
|
|
137
|
-
*/
|
|
138
|
-
forceRefreshDevices(): Promise<AudioDevice[]>;
|
|
139
|
-
/**
|
|
140
|
-
* Refresh the list of available devices with debouncing and notify listeners.
|
|
141
|
-
* @returns Promise resolving to the updated device list (AudioDevice[])
|
|
142
|
-
*/
|
|
143
|
-
refreshDevices(): Promise<AudioDevice[]>;
|
|
144
|
-
/**
|
|
145
|
-
* Get audio input devices using the Web Audio API
|
|
146
|
-
* @returns Promise resolving to an array of AudioDevice objects
|
|
147
|
-
*/
|
|
148
|
-
private getWebAudioDevices;
|
|
149
|
-
/**
|
|
150
|
-
* Check the current microphone permission status
|
|
151
|
-
* @returns Permission state ('prompt', 'granted', or 'denied')
|
|
152
|
-
*/
|
|
153
|
-
private checkMicrophonePermission;
|
|
154
|
-
/**
|
|
155
|
-
* Setup listener for device changes in web environment
|
|
156
|
-
*/
|
|
157
|
-
private setupWebDeviceChangeListener;
|
|
158
|
-
/**
|
|
159
|
-
* Check if the current browser is Safari or iOS WebKit
|
|
160
|
-
*/
|
|
161
|
-
private isSafariOrIOS;
|
|
162
|
-
/**
|
|
163
|
-
* Create enhanced device information for Safari and privacy-restricted browsers
|
|
164
|
-
* @param devices Array of AudioDevice objects, potentially unlabeled
|
|
165
|
-
* @returns Array of enhanced AudioDevice objects
|
|
166
|
-
*/
|
|
167
|
-
private enhanceDevicesForSafari;
|
|
168
|
-
/**
|
|
169
|
-
* Map a Web MediaDeviceInfo to our AudioDevice format
|
|
170
|
-
* @param device The MediaDeviceInfo object from the browser
|
|
171
|
-
* @returns An object conforming to the AudioDevice interface
|
|
172
|
-
*/
|
|
173
|
-
private mapWebDeviceToAudioDevice;
|
|
174
|
-
/**
|
|
175
|
-
* Try to infer the device type from its name
|
|
176
|
-
* @param deviceName The label of the device
|
|
177
|
-
* @returns A string representing the inferred device type
|
|
178
|
-
*/
|
|
179
|
-
private inferDeviceType;
|
|
180
|
-
/**
|
|
181
|
-
* Notify all registered listeners about device changes.
|
|
182
|
-
*/
|
|
183
|
-
notifyListeners(): void;
|
|
184
|
-
}
|
|
185
|
-
export declare const audioDeviceManager: AudioDeviceManager;
|
|
186
|
-
export { DeviceDisconnectionBehavior };
|
|
187
|
-
//# sourceMappingURL=AudioDeviceManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AudioDeviceManager.d.ts","sourceRoot":"","sources":["../../src/AudioDeviceManager.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,WAAW,EAEX,2BAA2B,EAC3B,WAAW,EACd,MAAM,yBAAyB,CAAA;AA0ChC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,qBAAqB,CAChB;IACb,OAAO,CAAC,sBAAsB,CAAC,CAAY;IAC3C,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,iBAAiB,CAAiB;IAC1C,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,MAAM,CAAC,CAAa;IAG5B,OAAO,CAAC,8BAA8B,CAAyB;IAC/D,OAAO,CAAC,qBAAqB,CAChB;IACb,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAO;gBAEpC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE;IAQ9C;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAqCtC;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,kBAAkB;IAKvD;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW;IAI7B;;;OAGG;IACH,yBAAyB,IAAI,IAAI;IAkBjC;;;OAGG;IACH,SAAS,IAAI,WAAW,GAAG,SAAS;IAIpC;;;;OAIG;IACG,mBAAmB,CAAC,OAAO,CAAC,EAAE;QAChC,OAAO,CAAC,EAAE,OAAO,CAAA;KACpB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA0B1B;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA6BrD;;;;OAIG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgCtD;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IAsB9C;;;;OAIG;IACH,uBAAuB,CACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,GAC3C,MAAM,IAAI;IAcb;;;;OAIG;IACH,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc,GAAG,IAAI;IAiCxE;;;OAGG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgB/C;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;OAGG;IACH,aAAa,IAAI,WAAW,EAAE;IAI9B;;;OAGG;IACH,mCAAmC,IAAI,WAAW,CAAC,MAAM,CAAC;IAI1D;;OAEG;IACH,OAAO,IAAI,IAAI;IAuBf;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAqBnD;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAuC9C;;;OAGG;YACW,kBAAkB;IAqEhC;;;OAGG;YACW,yBAAyB;IAmBvC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAmCpC;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAqC/B;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAyBjC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,eAAe,IAAI,IAAI;CAiB1B;AAGD,eAAO,MAAM,kBAAkB,oBAA2B,CAAA;AAE1D,OAAO,EAAE,2BAA2B,EAAE,CAAA"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { UseAudioRecorderState } from './ExpoAudioStream.types';
|
|
3
|
-
import { UseAudioRecorderProps } from './useAudioRecorder';
|
|
4
|
-
interface AudioRecorderProviderProps {
|
|
5
|
-
children: React.ReactNode;
|
|
6
|
-
config?: UseAudioRecorderProps;
|
|
7
|
-
}
|
|
8
|
-
export declare const AudioRecorderProvider: React.FC<AudioRecorderProviderProps>;
|
|
9
|
-
export declare const useSharedAudioRecorder: () => UseAudioRecorderState;
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=AudioRecorder.provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AudioRecorder.provider.d.ts","sourceRoot":"","sources":["../../src/AudioRecorder.provider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoC,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAoB,MAAM,oBAAoB,CAAA;AA2B5E,UAAU,0BAA0B;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,MAAM,CAAC,EAAE,qBAAqB,CAAA;CACjC;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAUtE,CAAA;AAED,eAAO,MAAM,sBAAsB,6BAQlC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoAudioStream.native.d.ts","sourceRoot":"","sources":["../../src/ExpoAudioStream.native.ts"],"names":[],"mappings":";AAKA,wBAAqD"}
|