Ich empfange eine Reihe von UDP-Paketen von einem Socket mit codierten PCM-Puffern. Nachdem ich sie entschlüsselt habe, bleibt mir ein int16 * Audiopuffer, den ich sofort abspielen möchte.iOS: Wiedergabe von PCM-Puffern aus einem Stream
Die beabsichtigte Logik geht in etwa so:
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);
}
Ich bin nicht sicher über alles, was allerdings mit der Wiedergabe der Puffer zu tun hat. Bei Android kann ich dies erreichen, indem ich ein AudioTrack-Objekt erstelle, es durch Festlegen einer Abtastrate, eines Formats, von Kanälen usw. einrichte und dann einfach die "Schreib" -Methode mit dem Puffer aufrufen (wie ich es mir wünsche) Ich könnte in meinem Pseudo-Code oben) aber auf iOS komme ich kurz.
Ich habe versucht, die Audio File Stream Services zu verwenden, aber ich vermute, dass ich etwas falsch mache, da kein Ton jemals herauskommt und ich fühle, dass diese Funktionen selbst keine Wiedergabe machen. Ich habe auch versucht, die Audio Queue Services zu verstehen (was meiner Meinung nach nahe an meinen Wünschen liegt), konnte jedoch keine einfachen Codebeispiele finden.
Jede Hilfe wäre sehr geschätzt, vor allem in Form von Beispielcode.
Hey, hast du es geschafft, es zu lösen? Ich habe ein ähnliches Problem, wenn möglich, bitte senden Sie ein Beispiel Ihres Codes. – moenad