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.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.