Sobre o projeto

react-native-audio-api é um motor de áudio para React Native construído em torno da especificação Web Audio API. Seu objetivo é permitir que desenvolvedores gerem e modifiquem áudio em um ambiente React Native praticamente da mesma forma que nos navegadores, usando conceitos familiares de grafo de áudio. Principais capacidades descritas no README: - Controle de grafo de áudio compatível com a especificação Web Audio API, com uma página de cobertura publicada que documenta quanto da especificação está implementado. - Reprodução e buffering por meio de uma API no estilo "audio tag", para que a reprodução simples não exija a construção manual de um grafo de áudio. - Gravação em arquivo com formato, qualidade e outros parâmetros configuráveis, integrada ao grafo de áudio, além de rotação de gravação que divide as gravações em partes menores. - Notificações de reprodução e gravação, controláveis pela central de notificações ou tela de bloqueio, com suporte a layouts de notificação personalizados. - Entrada de microfone, permitindo que o áudio do dispositivo ou de um dispositivo conectado seja roteado para o grafo ou transmitido em streaming. - Suporte a decodificação para m4a/mp4/aac/ogg/opus, além de streaming HLS para fontes ao vivo ou pré-gravadas. - Um conjunto de nós de áudio, incluindo WaveShaperNode para distorção não linear, IIRFilterNode para filtros digitais personalizados, ConvolverNode para reverb e efeitos espaciais, e um processador de áudio personalizado para escrever seus próprios nós. - JS Audio Worklets (V1 e V2) para executar lógica de processamento personalizada na thread de áudio e sincronizar com a thread de UI. - Módulos utilitários e de decodificação que funcionam sem primeiro criar um AudioContext. Trabalhos planejados mencionados no roadmap incluem um DynamicCompressorNode, suporte a MIDI, áudio espacial e cancelamento de ruído baseado no sistema. As instruções de instalação estão na documentação Getting Started do projeto. Um aplicativo de exemplo fica em apps/common-app, e um projeto de exemplo separado está disponível para experimentar a API sem integrá-la a um app real. A biblioteca é licenciada sob MIT; parte do código-fonte é derivada do WebKit e usa binários do FFmpeg, com detalhes de terceiros em THIRD_PARTY.md. O projeto é mantido pela Software Mansion, que também hospeda um Discord da comunidade para discussão e feedback.