Otrzymuję serię pakietów UDP z gniazda zawierającego zakodowane bufory PCM. Po ich zdekodowaniu pozostawiam bufor dźwiękowy int16 *, który chciałbym od razu odtworzyć.iOS: Odtwarzanie buforów PCM ze strumienia
Zamierzony logika idzie mniej więcej tak:
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);
}
Nie jestem pewien, o wszystkim, co ma zrobić z odtwarzanie bufory chociaż. Na Androidzie mogę to osiągnąć, tworząc obiekt AudioTrack, ustawiając go, określając częstotliwość próbkowania, format, kanały itp., A następnie po prostu wywołując metodę "zapisu" z buforem (jakbym sobie życzył Mógłbym w moim pseudo-kodzie powyżej), ale na iOS niedługo będę musiał.
Próbowałem użyć usługi strumieniowego przesyłania plików audio, ale domyślam się, że robię coś nie tak, ponieważ nigdy nie słychać żadnego dźwięku i mam wrażenie, że te funkcje same w sobie nie powodują żadnego odtwarzania. Próbowałem również zrozumieć usługi kolejkowania audio (które moim zdaniem mogą być bliskie temu, czego chcę), jednak nie mogłem znaleźć żadnych prostych próbek kodu do jego wykorzystania.
Każda pomoc zostanie bardzo doceniona, szczególnie w formie przykładowego kodu.
Hej, udało ci się go rozwiązać? Mam podobny problem, jeśli to możliwe, opublikuj próbkę swojego kodu. – moenad