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

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

Aceitar