Player de áudio local em HTML, CSS e JavaScript, com PWA e camada Android via Capacitor.
Sua música. Zero anúncios.
LenampLibrary usa Capacitor.registerPlugin() quando disponível, com fallback legado;A v0.4.1 liga a interface do LENAMP à biblioteca real de músicas do Android:
MediaStore.Audio.Media sem copiar os arquivos;content:// para cada faixa;No navegador/PWA, nada muda: o LENAMP continua usando o seletor de arquivos e IndexedDB.
READ_MEDIA_AUDIO.READ_EXTERNAL_STORAGE limitado até API 32.FOREGROUND_SERVICE + FOREGROUND_SERVICE_MEDIA_PLAYBACK.js/app.js — estado da interface e orquestração do player.js/native-library.js — fachada JS para a biblioteca Android.js/native-audio.js — fachada JS para o serviço Media3.native/android/.../LenampLibraryPlugin.java — consulta MediaStore e extrai capa sob demanda.native/android/.../LenampAudioPlugin.java — comandos do ExoPlayer/MediaSession.native/android/.../LenampPlaybackService.java — reprodução em segundo plano.scripts/install-android-audio.mjs — instala os plugins, permissões e serviço no projeto Android gerado.Extraia esta versão por cima do projeto fonte do LENAMP e rode:
npm install
npm run android:native
npm run cap:sync
Depois abra/recompile pelo Android Studio.
Se você apagar e gerar android/ novamente:
npm run android:add
Na primeira abertura, o sistema pede acesso a músicas e áudio. Após permitir, o LENAMP lê a biblioteca e preenche a lista automaticamente. Em seguida teste:
A equalização Web Audio continua funcionando para arquivos abertos no navegador/PWA. As faixas reproduzidas pelo ExoPlayer Android ainda não passam pelo equalizador Web Audio; uma etapa posterior pode implementar equalização nativa com AudioEffect sem misturar as duas arquiteturas.
LENAMP é um projeto independente criado por Leandro Ribeiro, inspirado no espírito dos players clássicos de desktop. Não possui afiliação com o Winamp — é apenas nostalgia e uma homenagem.
O LENAMP não precisa de microfone, câmera, fotos ou vídeos. A única permissão de mídia usada no Android 13+ é READ_MEDIA_AUDIO (“músicas e áudio”).
O instalador nativo agora remove automaticamente permissões antigas ou indevidas (RECORD_AUDIO, CAMERA, READ_MEDIA_IMAGES, READ_MEDIA_VIDEO etc.) do AndroidManifest.xml antes de sincronizar.
Para validar a correção em um aparelho que já recebeu builds anteriores, desinstale o LENAMP antigo uma vez, rode npm run android:native, npm run cap:sync e instale novamente. Isso limpa permissões previamente concedidas ao pacote durante os testes.