@siteed/expo-audio-studio 2.9.0 → 2.10.1
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/CHANGELOG.md +13 -1
- package/android/build.gradle +9 -0
- 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 +197 -0
- package/android/src/androidTest/java/net/siteed/audiostream/AudioRecorderInstrumentedTest.kt +541 -0
- package/android/src/androidTest/java/net/siteed/audiostream/integration/BufferDurationIntegrationTest.kt +324 -0
- package/android/src/androidTest/java/net/siteed/audiostream/integration/OutputControlIntegrationTest.kt +340 -0
- package/android/src/androidTest/java/net/siteed/audiostream/integration/README.md +95 -0
- package/android/src/androidTest/java/net/siteed/audiostream/integration/run_integration_tests.sh +28 -0
- package/android/src/main/java/net/siteed/audiostream/AudioFormatUtils.kt +264 -13
- package/android/src/main/java/net/siteed/audiostream/AudioProcessor.kt +3 -13
- package/android/src/main/java/net/siteed/audiostream/AudioRecorderManager.kt +118 -55
- package/android/src/main/java/net/siteed/audiostream/LogUtils.kt +32 -4
- package/android/src/main/java/net/siteed/audiostream/RecordingConfig.kt +50 -15
- package/android/src/test/java/net/siteed/audiostream/AudioFileHandlerTest.kt +279 -0
- package/android/src/test/java/net/siteed/audiostream/AudioFormatUtilsTest.kt +273 -0
- package/android/src/test/resources/chorus.wav +0 -0
- package/android/src/test/resources/generate_test_audio.py +94 -0
- 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/build/cjs/ExpoAudioStream.types.js.map +1 -1
- package/build/cjs/ExpoAudioStream.web.js +37 -34
- package/build/cjs/ExpoAudioStream.web.js.map +1 -1
- package/build/cjs/WebRecorder.web.js +12 -10
- package/build/cjs/WebRecorder.web.js.map +1 -1
- package/build/cjs/useAudioRecorder.js.map +1 -1
- package/build/esm/ExpoAudioStream.types.js.map +1 -1
- package/build/esm/ExpoAudioStream.web.js +37 -34
- package/build/esm/ExpoAudioStream.web.js.map +1 -1
- package/build/esm/WebRecorder.web.js +12 -10
- package/build/esm/WebRecorder.web.js.map +1 -1
- package/build/esm/useAudioRecorder.js.map +1 -1
- package/build/types/ExpoAudioStream.types.d.ts +54 -22
- package/build/types/ExpoAudioStream.types.d.ts.map +1 -1
- package/build/types/ExpoAudioStream.web.d.ts.map +1 -1
- package/build/types/WebRecorder.web.d.ts.map +1 -1
- package/ios/AudioNotificationManager.swift +2 -6
- package/ios/AudioStreamManager.swift +116 -50
- package/ios/ExpoAudioStream.podspec +6 -0
- package/ios/ExpoAudioStreamModule.swift +11 -8
- package/ios/ExpoAudioStudioTests/AudioFileHandlerTests.swift +338 -0
- package/ios/ExpoAudioStudioTests/AudioFormatUtilsTests.swift +331 -0
- package/ios/ExpoAudioStudioTests/AudioTestHelpers.swift +130 -0
- package/ios/ExpoAudioStudioTests/Info.plist +22 -0
- package/ios/ExpoAudioStudioTests/SimpleAudioTest.swift +98 -0
- package/ios/ExpoAudioStudioTests/TestAudioGenerator.swift +75 -0
- package/ios/RecordingSettings.swift +53 -22
- package/ios/tests/integration/buffer_duration_test.swift +185 -0
- package/ios/tests/integration/output_control_test.swift +322 -0
- package/ios/tests/integration/run_integration_tests.sh +27 -0
- package/ios/tests/standalone/audio_processing_test.swift +144 -0
- package/ios/tests/standalone/audio_recording_test.swift +277 -0
- package/ios/tests/standalone/audio_streaming_test.swift +249 -0
- package/ios/tests/standalone/standalone_test.swift +144 -0
- package/package.json +140 -133
- package/src/ExpoAudioStream.types.ts +66 -22
- package/src/ExpoAudioStream.web.ts +43 -38
- package/src/WebRecorder.web.ts +13 -10
- package/src/useAudioRecorder.tsx +1 -1
- package/android/src/main/test/java/net/siteed/audiostream/AudioProcessorTest.kt +0 -56
- package/ios/siteedexpoaudiostudio.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/ios/siteedexpoaudiostudio.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- /package/plugin/build/{index.d.ts → index.d.cts} +0 -0
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
package net.siteed.audiostream
|
|
2
|
-
|
|
3
|
-
import org.junit.Test
|
|
4
|
-
import org.junit.Assert.*
|
|
5
|
-
|
|
6
|
-
class AudioProcessorTest {
|
|
7
|
-
|
|
8
|
-
private val sampleRate = 44100
|
|
9
|
-
private val channels = 1
|
|
10
|
-
private val encoding = "pcm_16bit"
|
|
11
|
-
private val pointsPerSecond = 1000
|
|
12
|
-
private val algorithm = "rms"
|
|
13
|
-
private val features = mapOf("rms" to true, "zcr" to true)
|
|
14
|
-
|
|
15
|
-
private val recordingConfig = RecordingConfig(
|
|
16
|
-
sampleRate = sampleRate,
|
|
17
|
-
channels = channels,
|
|
18
|
-
encoding = encoding,
|
|
19
|
-
interval = 1000,
|
|
20
|
-
enableProcessing = true,
|
|
21
|
-
pointsPerSecond = pointsPerSecond,
|
|
22
|
-
algorithm = algorithm,
|
|
23
|
-
features = features
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
private val audioProcessor = AudioProcessor()
|
|
27
|
-
|
|
28
|
-
@Test
|
|
29
|
-
fun testProcessAudioData() {
|
|
30
|
-
val data = generateSineWave(440.0, sampleRate, 2.0)
|
|
31
|
-
|
|
32
|
-
val result = audioProcessor.processAudioData(data, recordingConfig)
|
|
33
|
-
|
|
34
|
-
assertNotNull(result)
|
|
35
|
-
assertEquals(pointsPerSecond, result.pointsPerSecond)
|
|
36
|
-
assertEquals((data.size / sampleRate) * 1000, result.durationMs.toInt())
|
|
37
|
-
assertEquals(16, result.bitDepth)
|
|
38
|
-
assertEquals(channels, result.numberOfChannels)
|
|
39
|
-
assertEquals(sampleRate, result.sampleRate.toInt())
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// Helper function to generate a sine wave
|
|
43
|
-
private fun generateSineWave(frequency: Double, sampleRate: Int, durationSeconds: Double): ByteArray {
|
|
44
|
-
val numSamples = (sampleRate * durationSeconds).toInt()
|
|
45
|
-
val output = ByteArray(numSamples * 2) // 16-bit PCM
|
|
46
|
-
|
|
47
|
-
for (i in 0 until numSamples) {
|
|
48
|
-
val time = i / sampleRate.toDouble()
|
|
49
|
-
val amplitude = (Math.sin(2.0 * Math.PI * frequency * time) * 32767).toInt()
|
|
50
|
-
output[i * 2] = (amplitude and 0xff).toByte()
|
|
51
|
-
output[i * 2 + 1] = ((amplitude shr 8) and 0xff).toByte()
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return output
|
|
55
|
-
}
|
|
56
|
-
}
|
|
File without changes
|