diff --git a/apps/common-app/src/examples/Record/Record.tsx b/apps/common-app/src/examples/Record/Record.tsx index 25d27442c..1765b203f 100644 --- a/apps/common-app/src/examples/Record/Record.tsx +++ b/apps/common-app/src/examples/Record/Record.tsx @@ -1,11 +1,12 @@ -import React, { FC, useEffect, useState } from 'react'; +import React, { FC, useCallback, useEffect, useState } from 'react'; import { Alert, Text, View } from 'react-native'; import { AudioBuffer, AudioManager, + useAudioInput, } from 'react-native-audio-api'; -import { Button, Container } from '../../components'; +import { Button, Container, Select } from '../../components'; import { colors } from '../../styles'; import { audioContext, audioRecorder } from '../../singletons'; @@ -18,6 +19,8 @@ enum Status { } const Record: FC = () => { + const { availableInputs, currentInput, onSelectInput } = useAudioInput(); + const [status, setStatus] = useState(Status.Idle); const [capturedBuffers, setCapturedBuffers] = useState([]); @@ -40,8 +43,8 @@ const Record: FC = () => { AudioManager.setAudioSessionOptions({ iosCategory: 'playAndRecord', - iosMode: 'default', - iosOptions: ['defaultToSpeaker', 'allowBluetoothA2DP'], + iosMode: 'voiceChat', + iosOptions: ['allowBluetoothHFP'], }); const success = await AudioManager.setAudioSessionActivity(true); @@ -195,6 +198,17 @@ const Record: FC = () => { ); }; + const onSelect = useCallback( + (uid: string) => { + const input = availableInputs.find((d) => d.uid === uid); + + if (input) { + onSelectInput(input); + } + }, + [availableInputs, onSelectInput] + ); + useEffect(() => { return () => { audioRecorder.stop(); @@ -208,6 +222,13 @@ const Record: FC = () => { Status: {status} + +