Falha ao carregar arquivos de áudio pelo Android

30/01/2020

0

Mensagens de erro mostradas no Logcat do Android Studio:

01-16 11:27:34.088 15846-15846/? W/Glide: Load failed for /storage/emulated/0/9fe457b5-7baf-459d-be34-76ec5c2bcf74audio_record.3gp with size [80x80] 
class com.bumptech.glide.load.engine.GlideException: Failed to load resource
 Cause (1 of 3): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{FileInputStream->Object->Drawable}, LOCAL
   Cause (1 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->GifDrawable->Drawable}
   Cause (2 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->Bitmap->Drawable}
   Cause (3 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->BitmapDrawable->Drawable}
 Cause (2 of 3): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{ParcelFileDescriptor->Object->Drawable}, LOCAL
   Cause (1 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor->Bitmap->Drawable}
   Cause (2 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor->BitmapDrawable->Drawable}
 Cause (3 of 3): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{AssetFileDescriptor->Object->Drawable}, LOCAL
   Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{AssetFileDescriptor->Bitmap->Drawable}
Ideia geral do app


Estou desenvolvendo um aplicativo que grava um áudio pelo smartphone, pega esse áudio gravado e o transforma em um vetor de bytes. O áudio após ser gravado está sendo salvo pelo smartphone como um arquivo de áudio com nomes genéricos do tipo "...audio_record.3gp".

Após usar o aplicativo para gravar um áudio, eu abro um aplicativo chamado "File Manager" e entro na pasta "/storage/emulated/0" aonde os áudios gravados com o final "..audio_record.3gp" estão sendo salvos.

Para justamente pegar esse diretório local eu uso:

String path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+UUID.randomUUID().toString()+"audio_record.3gp";


Para converter o arquivo de áudio em um vetor, faço o seguinte:

public byte[] convert(String path) throws IOException {

FileInputStream fis = new FileInputStream(path);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] b = new byte[1024];

for (int readNum; (readNum = fis.read(b)) != -1; ) {
    bos.write(b, 0, readNum);
}

byte[] bytes = bos.toByteArray();

String decode = Arrays.toString(bytes);
Log.d("mytag", decode);

return bytes;


O que acontece

O áudio está sendo gravado corretamente, e é salvo na pasta "/storage/emulated/0". O problema acontece quando eu pego o último arquivo de áudio que foi gravado na pasta, e tento convertê-lo no vetor de bytes. Aparece as mensagens de erros na Logcat que mostrei acima.
Carolina Morais

Carolina Morais

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar