1.1.17 • Published 4 months ago

react-native-microphone v1.1.17

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

react-native-microphone

Biblioteca para integração com Bluetooth SCO e reconhecimento de voz no React Native.

📌 Funcionalidades

  • Conexão automática com dispositivos Bluetooth SCO
  • Reconhecimento de voz contínuo
  • Reativação automática da conexão Bluetooth SCO se for desconectada
  • Integração com expo-speech para sintetização de fala

📦 Instalação

npm install react-native-microphone

Ou com Yarn:

yarn add react-native-microphone

🔧 Permissões Necessárias

No AndroidManifest.xml, adicione as seguintes permissões:

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

🚀 Como Usar

Exemplo de uso no React Native:

import { Alert, PermissionsAndroid, Platform } from "react-native";
import { startBluetoothSco, startVoiceRecognition } from 'react-native-microphone';
import * as Speech from 'expo-speech';

async function requestPermission() {
    if (Platform.OS === 'android') {
        await PermissionsAndroid.requestMultiple([
            PermissionsAndroid.PERMISSIONS.BLUETOOTH_CONNECT,
            PermissionsAndroid.PERMISSIONS.RECORD_AUDIO,
        ]);
    }
}

export async function StartBluetooth() {
    try {
        await requestPermission();
        if (startBluetoothSco) {
            await startBluetoothSco();
            console.log("Connecting to Bluetooth");
        }
    } catch (error) {
        console.error("Erro ao conectar Bluetooth SCO", error);
    }
}

export function StartSpeech() {
    StartBluetooth();
    startVoiceRecognition();
}

export function Speaker(text: string, onDone?: () => void) {
    Speech.speak(text, {
        language: 'pt-BR',
        _voiceIndex: 1,
        pitch: 1,
        rate: 1.5,
        onDone: onDone,
    });
}

📡 Eventos

A biblioteca emite eventos via DeviceEventManagerModule. Para capturar os resultados do reconhecimento de voz:

import { useEffect, useState } from 'react';
import { DeviceEventEmitter } from 'react-native';

const [voiceResult, setVoiceResult] = useState("");

useEffect(() => {
    const subscription = DeviceEventEmitter.addListener('onVoiceRecognitionResult', (event) => {
        setVoiceResult(event.result);
        console.log("Reconhecimento de voz:", event.result);
    });
    return () => subscription.remove();
}, []);

🛠 Manutenção da Conexão Bluetooth SCO

Para garantir que a conexão não seja perdida, a biblioteca monitora mudanças no estado do Bluetooth SCO e reconecta automaticamente caso seja desconectado.


Se precisar de melhorias ou encontrar bugs, abra uma issue! 🚀

1.0.2

7 months ago

1.0.1

7 months ago

1.0.0

7 months ago

1.1.17

4 months ago

1.0.9

5 months ago

1.0.8

5 months ago

1.0.7

5 months ago

1.0.6

5 months ago

1.0.5

5 months ago

1.0.4

7 months ago

1.0.3

7 months ago

0.1.1

7 months ago

1.1.12

4 months ago

1.1.11

4 months ago

1.1.10

5 months ago

1.1.16

4 months ago

1.1.15

4 months ago

1.1.14

4 months ago

0.1.0

8 months ago