Attualmente ho un audio PCM sotto forma di un array di byte. Il formato è firmato a 16 bit little endian. Vorrei convertirlo in un formato riproducibile su Android, preferibilmente nella versione 3.2 o successiva. Qualcuno ha suggerimenti su come questo può essere fatto? Ho fatto qualche ricerca e ho provato quanto segue, ma nessuno ha avuto successo. Sarebbe molto apprezzato se qualcuno potesse suggerire un modo migliore o indicare dove ho sbagliato.Byte PCM non elaborati [] Per l'audio su Android
Ho provato a generare un Formato audio con le impostazioni audio corretti, ma Android non supporta la libreria javax.sound.sampled.
Ho anche provato a scrivere i dati PCM in un file wave, ma io sono in esecuzione in difficoltà a raggiungere tutte le necessarie informazioni di intestazione wav.
ho anche provato ad utilizzare la classe AudioTrack offerta dal Android, per riprodurre i dati PCM. Tuttavia, non riesco a sentire alcun suono. Ecco il mio metodo:
public void playback(){
try{
AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, 8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, 500000, AudioTrack.MODE_STATIC);
audioTrack.write(audio, 0, 500000);
} catch(Throwable t){
Log.d("Audio","Playback Failed");
}
}
Qualsiasi suggerimento sarebbe apprezzato.
aggiornato la mia risposta –