Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho um serviço onde usuários podem aplicar filtros de áudio na entrada de som. Quero permitir que eles salvem o projeto atual para carregar depois, usando apenas o navegador, sem banco de dados ou backend.
Para esse caso, as opções mais viáveis são:
Para salvar, você pode serializar o estado do projeto em JSON e guardar no IndexedDB. Para o áudio, pode usar o método URL.createObjectURL() após converter o arquivo carregado ou processado em blob, guardando esse link ou o próprio blob na IndexedDB. A decisão fica mais saudável quando o time consegue medir o impacto depois.
Para carregar, basta recuperar do IndexedDB, criar o blob de volta em URL e reconfigurar o estado do seu app.
Vamos trocar ideias, galera. Como vocês costumam fazer para salvar projetos de áudio no navegador? O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois.
🧪
No meu time, a gente usa IndexedDB pra guardar trechos de áudio processados e o estado do projeto. O maior desafio foi otimizar a serialização pra não travar o navegador em projetos maiores. Já testaram usar chunks de áudio pra facilitar o carregamento?
Concordo, o tamanho é o maior problema. Aqui no suporte, a gente sempre recomenda salvar apenas as configurações e o áudio em um storage externo se for possível. Mas pra offline, IndexedDB é o caminho mesmo. Alguém já usou alguma biblioteca específica pra facilitar isso?
Interessante o uso de IndexedDB, mas cuidado com o tamanho dos arquivos. Pode impactar na experiência do usuário se demorar muito pra carregar ou salvar.