Was ich mache: Ich schreibe gerade Sprache und speichere sie als eine Datei in SDCard, die im MediaPlayer läuft/läuft.Android Base64 Audiodatei Kodieren und Dekodieren
Was ich will: Wenn ich diese Datei in Base64 verschlüsseln und an den Server senden, alles geht gut. Aber wenn ich die Base64-Zeichenfolge in die Datei audio.m4a decodiere, wird sie nicht im MediaPlayer ausgeführt.
I .m4a, versucht hatte .wav aber alles umsonst.
Das Problem liegt in der Codierung. Denn wenn ich eine Datei dekodiere, die von derselben iOS-App gesendet wurde, läuft sie im MediaPlayer einwandfrei.
Ich weiß, es ist sehr einfach und viel Hilfe ist da, um zu entschlüsseln, aber nichts funktioniert. mein Ansatz ist folgende:
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);
}
}
& Dekodieren auf folgende Weise:
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();
}
}
Bitte zeigen Sie, wenn ich falsch/dumm tue nichts.
Verwendung als untenstehenden Link vorgeschrieben in http://stackoverflow.com/questions/22596345/audio-file-encoding-and-decoding – Sumit
@Sumit .. ich vorher gesehen hatte. Keine Verwendung. – Noman