Aktuelle Version |
Dein Text |
Zeile 271: |
Zeile 271: |
| | | |
| === Verwenden einer bereits offenen Verbindung zu einem Server === | | === Verwenden einer bereits offenen Verbindung zu einem Server === |
− | Sollte bereits eine Verbindung bestehen kann das vorhandene Connection-Objekt verwendet werden um VS Verbindungs-Objekte davon zu erzeugen. Wichtig hierbei ist das bei trennen der Verbindung zu erst alle VS Verbindungs-Objekte getrennt werden müssen und danach erst das Connection-Objekt.
| + | ... |
− | | |
− | Das Vorgehen ein Connection-Objekt kann als Beispiel dann sinnvoll sein, sollten vielen VS Verbindungs-Objekte benötigt werden um das ständige Neu verbinden zu unterdrücken. Dies reduziert auch deutlich die möglichen Fehler.
| |
− | | |
− | Zur Verwendung einer externen Verbindung wird die Funktion ''roar_vs_new_from_con()'' verwendet. Diese benötigt als Parameter lediglich das Connection-Objekt und den Fehlercode pointer.
| |
− | | |
− | Es wird das neue Verbindungs-Objekt oder NULL zurück gegeben.
| |
− | | |
− | Ein Stream muss anschließend wie im folgenden gezeigt mittels ''roar_vs_stream()'' erzeugt werden.
| |
− | | |
− | ==== Beispiel ====
| |
− | roar_vs_t * vss;
| |
− |
| |
− | vss = roar_vs_new_from_con(con, &err);
| |
| | | |
| === Verwendung von VS Verbindungs-Objekts mit nachträglicher Stream Erzeugung === | | === Verwendung von VS Verbindungs-Objekts mit nachträglicher Stream Erzeugung === |
− | Ein VS Verbindungs-Objekt muss nicht von Anfang an mit einem Stream verbunden sein. Dies kann als Beispiel dann interessant sein sollte man mittels Haupt API weitere Parameter mit dem Server ab prüfen wollen bevor man den Stream erzeugt. Auch kann man so einen zweiten Versuch starten einen Stream zu öffnen (mit anderen Parametern) sollte der Server den Stream mit den gewünschten Parametern nicht annehmen ohne neu Verbinden zu müssen.
| + | ... |
− | | |
− | Zu erst muss dazu ein Nicht mit einem Stream verbundenes Verbinungs-Objekt erzeugt werden. Dies kann entweder mittels der oben beschriebenen Funktion ''roar_vs_new_from_con()'' oder mittels der Funktion ''roar_vs_new()'' geschehen.
| |
− | | |
− | Im Gegensatz zu ''roar_vs_new_from_con()'' erzeugt ''roar_vs_new()'' selbstständig eine Verbindung zum Server. ''roar_vs_new()'' erwartet um dies zu tun drei Parameter: Die Adresse des Servers (oder NULL um Defaults zu verwenden), den Namen unseres Klienten und den Fehlercode Pointer. Siehe hierzu auch das Beispiel am ende dieses Teils.
| |
− | | |
− | Um nun einen Stream zu erzeugen und zu Verbinden wird die Funktion ''roar_vs_stream()'' verwendet. Diese benötigt, neben dem Verbindungs-Objekt und dem Fehlercode Pointer, das Audio-Informations Struct und die Angabe der Stream Direction. Sollte diese Funktion Fehlschlagen ist es möglich erneut zu versuchen einen Stream (mit anderen Parametern) zu verbinden. Ausgenommen hiervon ist der Fall, dass das Objekt bereits verbunden ist da in diesem Fall es nicht sinnvoll ist diese Funktion auf zu rufen.
| |
− | | |
− | ==== Beispiele ====
| |
− | roar_vs_t * vss;
| |
− | struct roar_audio_info info;
| |
− | int ret;
| |
− |
| |
− | info.bits = 16;
| |
− | info.rate = 44100;
| |
− | info.channels = 2;
| |
− | info.codec = ROAR_CODEC_DEFAULT;
| |
− |
| |
− | vss = roar_vs_new(NULL, "MyApp", &err);
| |
− |
| |
− | // Fehler hier Behandeln.
| |
− |
| |
− | ret = roar_vs_stream(vss, &info, ROAR_DIR_PLAY, &err);
| |
| | | |
| == Siehe Auch == | | == Siehe Auch == |