2016-03-30 20 views
1

Yapıyor: Şu anda ses kaydediyorum ve MediaPlayer uygulamasında iyi çalışan sdCard içindeki bir dosya olarak kaydediyorum.Android Base64 Ses Dosyası Kodlama/Kod Çözme

Ne isterim: Bu dosyayıBase64 içine kodlayıp sunucuya gönderdiğimde her şey yolunda gider. Ama Base64 String'i audio.m4a dosyasına çözdüğümde, MediaPlayer'da çalışmıyor.

.M4a, .wav denedim ama hepsi boşuna. Sorun kodlamada. Çünkü aynı iOS uygulamasından gönderilen bir dosyayı çözdüğümden, MediaPlayer uygulamasında iyi çalışıyor.

Kodun kodlamasını çözmek için çok temel ve çok yardımı olduğunu biliyorum ama hiçbir şey çalışmıyor. Aşağıdaki şekilde

private void encodeAudio(String selectedPath) { 

byte[] audioBytes; 
try { 

    // Just to check file size.. Its is correct i-e; Not Zero 
    File audioFile = new File(selectedPath); 
    long fileSize = audioFile.length(); 

    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    FileInputStream fis = new FileInputStream(new File(selectedPath)); 
    byte[] buf = new byte[1024]; 
    int n; 
    while (-1 != (n = fis.read(buf))) 
     baos.write(buf, 0, n); 
    audioBytes = baos.toByteArray(); 

    // Here goes the Base64 string 
    _audioBase64 = Base64.encodeToString(audioBytes, Base64.DEFAULT); 

} catch (Exception e) { 
    DiagnosticHelper.writeException(e); 
} 

}  

Ve Çözme:: ben yanlış bir şey yapıyorsam

private void decodeAudio(String base64AudioData, File fileName, String path, MediaPlayer mp) { 

try { 

    FileOutputStream fos = new FileOutputStream(fileName); 
    fos.write(Base64.decode(base64AudioData.getBytes(), Base64.DEFAULT)); 
    fos.close(); 

    try { 

     mp = new MediaPlayer(); 
     mp.setDataSource(path); 
     mp.prepare(); 
     mp.start(); 

    } catch (Exception e) { 

     DiagnosticHelper.writeException(e); 

    } 

} catch (Exception e) { 
    e.printStackTrace(); 
} 


}  

işaret Lütfen takiben benim yaklaşımdır. Kod Çözme dosyası bozuk neden Teşekkür

+0

Dönüştürülmüş base64 'ü istediğiniz dosyaya dönüştürün, daha sonra oynatın, ardından sunucuda ne olduğunu kontrol edin, çapraz kontrol edin, aynı şeyi kodlayın, bildiğim gibi kodlayın. Yardım ederse bana bildirin .. –

+0

kodlanmış dizeyi sunucuya gönderiyorsunuz ve eğer 'server'-string'ini çözmeyi denerseniz bir şeyler ters gidiyor mu? Belki de sunucuya veri aktarımı ile bir şeyler ters gitti mi? – zypro

+0

Sunucu da bana aynı base64'i json @zypro –

cevap

0

sorun ses relasing önce ben Base64 String içine şu ses dönüştürme oldu edilir !! Şerefe

İlgili konular