2017-08-23 4 views
1

Je suis la diffusion du flux en utilisant un tiers sdk et après l'ajout de rappel, je suis en mesure d'obtenir le ByteBuffer de l'audio, mais quand je l'ai enregistré sur le sdcard pas en mesure de le lire.Android Store données de ByteBuffer au stockage

ici est extrait de mon code

long startedTime = -1; 

    @Override 
    public void onAudioBuffer(ByteBuffer byteBuffer, int i, long l) { 
     if (bufferedOutputStream == null) 
      createFile(); 
     Log.e(TAG, "i:" + i); 
     Log.e(TAG, "l:" + l); 
     Log.e(TAG, "byteBuffer capacity:" + byteBuffer.capacity()); 
     Log.e(TAG, "byteBuffer length:" + byteBuffer.array().length); 
     if (startedTime == -1) { 
      startedTime = System.currentTimeMillis(); 
      createFile(); 
     } else if (System.currentTimeMillis() - startedTime > 10000) { 
      try { 
       bufferedOutputStream.close(); 
       startedTime = -1; 
      } catch (IOException e) { 
       Log.e(TAG, "byteBuffer bufferedOutputStream closing err:" + e.getMessage()); 
       e.printStackTrace(); 
      } 
      return; 
     } else { 
      try { 
       byte[] bytes = new byte[byteBuffer.capacity()]; 
       byteBuffer.get(bytes, 0, bytes.length); 
       bufferedOutputStream.write(bytes); 
       byteBuffer.clear(); 
      } catch (IOException e) { 
       Log.e(TAG, "byteBuffer bufferedOutputStream writhing err:" + e.getMessage()); 
       e.printStackTrace(); 
      } 
     } 
    } 

Répondre

0

essayer de changer cela: -

try { 
      byte[] bytes = new byte[1024]; 
      byteBuffer.get(bytes, 0, bytes.length); 

      bufferedOutputStream.write(bytes); 

     } catch (IOException e) { 
      Log.e(TAG, "byteBuffer bufferedOutputStream writhing err:" + e.getMessage()); 
      e.printStackTrace(); 
     } 

enfin fermer la ByteBuffer après l'opération ou Copping tous.

+0

Même problème impossible de lire le fichier –

+0

Quelle est l'erreur? –

+0

Il n'y a pas d'erreur lors de l'écriture du fichier, la seule chose est que je ne peux pas lire le fichier mp3 –