Frage

Ich möchte Portaudio-Bibliothek verwenden, Audiodaten zu spielen. Diese Audio-Daten stammen aus UDP Paquets.

Ich sah es Pa_OpenDefaultStream () (und Pa_OpenStream (), die ziemlich ähnlich ist) Funktion einen Strom zu öffnen:

PaStream *stream;
PaError err;
/* Open an audio I/O stream. */
err = Pa_OpenDefaultStream( &stream,
                            0,          /* no input channels */
                            2,          /* stereo output */
                            paFloat32,  /* 32 bit floating point output */
                            SAMPLE_RATE,
                            256,        /* frames per buffer, i.e. the number
                                               of sample frames that PortAudio will
                                               request from the callback. Many apps
                                               may want to use
                                               paFramesPerBufferUnspecified, which
                                               tells PortAudio to pick the best,
                                               possibly changing, buffer size.*/
                            patestCallback, /* this is your callback function */
                            &data ); /*This is a pointer that will be passed to
                                               your callback*/

Ich glaube, ich habe es verwenden, um meine Paquets zu spielen, aber ich weiß nicht, wie es zu benutzen:

  • Was ist der erste Parameter?
  • Warum habe ich eine Call-Back-Funktion definieren?

Hier ist ein Link auf die Portaudio Dokumentation: http://www.portaudio.com/trac/

Jede Hilfe wäre sehr dankbar:)

Danke.

War es hilfreich?

Lösung

Der erste Parameter ist ein Zeiger auf einen Eingabe / Ausgabestrom, vom Typ PaStream. Die Audiodaten werden von / zu diesem Stream geschrieben gelesen werden.

Sie müssen eine Callback-Funktion schreiben, dass die Portaudio-Bibliothek aufrufen wird, wenn es zu / von Ihrem PC lesen oder zu schreiben Audio muss. Jede andere Audioverarbeitung Sie (zum Beispiel DSP) tun wollen wird auch hier geschehen. Eine einfache Callback-Funktion würde kopieren Sie einfach den Eingang zum Ausgang, für die Streaming-I / O. Wenn Sie Probleme haben, Rückrufe, verwenden Sie die Blockierung API stattdessen kann es leichter zu verstehen sein.

Übersetzen und die Beispiele für Details laufen (zum Beispiel patest_read_record.c), Theres viele Informationen gibt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top