Ricevo una serie di pacchetti UDP da un socket contenente buffer PCM codificati. Dopo averli decodificati, mi rimane un buffer audio int16 *, che mi piacerebbe riprodurre immediatamente.iOS: riproduzione di buffer PCM da un flusso
La logica previsto più o meno così:
init(){
initTrack(track, output, channels, sample_rate, ...);
}
onReceiveBufferFromSocket(NSData data){
//Decode the buffer
int16 * buf = handle_data(data);
//Play data
write_to_track(track, buf, length_of_buf, etc);
}
Non sono sicuro su tutto ciò che ha a che fare con la riproduzione dei buffer però. Su Android, sono in grado di realizzare questo creando un oggetto AudioTrack, impostandolo specificando una frequenza di campionamento, un formato, canali, ecc ... e quindi semplicemente chiamando il metodo "write" con il buffer (come vorrei Potrei farlo nel mio pseudo-codice sopra), ma su iOS non mi sento in forma.
Ho provato a utilizzare i servizi di flusso di file audio, ma suppongo che stia facendo qualcosa di sbagliato poiché non viene mai emesso alcun suono e ho l'impressione che tali funzioni da sole non eseguano alcuna riproduzione. Ho anche tentato di capire i servizi di coda audio (che penso potrebbe essere vicino a quello che voglio), tuttavia non sono riuscito a trovare alcun esempio di codice semplice per il suo utilizzo.
Qualsiasi aiuto sarebbe molto apprezzato, specialmente sotto forma di codice di esempio.
Ehi, sei riuscito a risolverlo? Sto riscontrando un problema simile, se possibile, pubblica un esempio del tuo codice. – moenad