RoarAudio/Programmieren/Simple

Aus UUGRN
Wechseln zu: Navigation, Suche

RoarAudio bietet neben der Standard API eine Simple API an welche den Umgang mit RoarAudio deutlich vereinfacht. Ist es möglich ist die Simple API zu verwenden.

Steuer Verbindung[Bearbeiten]

Um eine Verbindung zum Server auf zu bauen ist zu empfehlen die Funktion roar_simple_connect() zu verwenden. Im Gegensatz zu roar_connect() führt diese zusätzlich die so genannte Identifikation und die Authentifikation des Klienten durch.

Beispiel:

if ( roar_simple_connect(&con, server, "MyClient") == -1 ) {
 return -1;
}

In diesem Beispiel wird versucht zum Server server zu verbinden. Um zum Standard Server zu verbinden kann NULL verwendet werden. Der Neue Klient trägt auf dem Server nun den Namen "MyClient". Dieser sollte möglichst Aussagekräftig sein und das Programm Identifizieren. Prozess IDs oder Session Kennungen haben hier nichts zu suchen. Beispiele: "XMMS", "Amarok", "mplayer", "ogg123".

Zum Schließen der Verbindung wird auf die Normale API Funktion roar_disconnect() zurück gegriffen:

ret = roar_disconnect(&con);

Streams[Bearbeiten]

Zum Öffnen von Streams gibt es zwei mögliche Szenarien: Zum einen die möglichkeit das ein einzelner Stream erzeugt werden soll (einmalig), oder das eine Reihe von Streams erzeugt werden soll, wie bei einem Player als Beispiel, der mehre Lieder nacheinander abspielt.

Zunächst behandeln wir den Fall das nur ein Stream verwendet werden soll: Hier zu gibt es die Funktion roar_vio_simple_stream() welche lediglich ein VIO Objekt uns erzeugt über welches wir auf den Stream zugreifen können.

Beispiel:

if ( roar_vio_simple_stream(&vio, rate, channels, bits, ROAR_CODEC_DEFAULT, NULL, ROAR_DIR_PLAY, "MyApp") == -1 ) {
 return -1;
}

Im Beispiel wird eine Verbindung zum Standard Server (NULL) aufgebaut, dort ein PCM Stream im nativen Format mit Daten den aus rate, channels und bits erzeugt. Unser Klient heißt "MyApp".

Im zweiten Fall das wir mehre Streams hinter einander verwenden möchten verbinden wir zu erst wie oben gezeigt zum Server und verwenden dann die Funktion roar_vio_simple_new_stream_obj().

Beispiel:

struct roar_stream stream;

if ( roar_vio_simple_new_stream_obj(&vio, &con, &stream,
                                    rate, channels, bits, ROAR_CODEC_DEFAULT,
                                    ROAR_DIR_PLAY) == -1 ) {
 return -1;
}

Hier wird Prinzipiell das selbe wie oben getan nur mit folgenden Erweiterungen:

  1. Es wird die bereits bestehende Verbindung con verwendet.
  2. Es wird ein Stream Objekt stream angelegt. Dieses können wir verwenden für die Übertragung von zum Beispiel Meta Daten oder Ignorieren.

Beide Varianten erzeugen uns ein VIO Objekt (vio) über das wir auf unseren Stream Zugriff nehmen können.

Dateien Abspielen[Bearbeiten]

libroar bietet neben den Standard Funktionen zum abspielen von Daten noch noch spezielle Funktionen zum abspielen von Dateien. Bei der einfachsten handelt es sich um roar_simple_play_file(). Diese Funktion baut eine Verbindung zu einem Server auf und sendet eine Datei an diesen.

Beispiel:

if ( roar_simple_play_file("music.ogg", NULL, "MyApp") == -1 ) {
 return -1;
}

Soll ein Prozess oder Thread mehre Dateien abspielen so kann eine Verbindung zum RoarAudio Sound Server aufgebaut werden (wie oben beschrieben) und dann roar_file_play() verwendet werden.

Beispiel:

if ( roar_file_play(&con, file[idx], 0) == -1 ) {
 return -1;
}

Das Beispiel spielt die Datei mit dem Namen im Array file und dem Index idx ab.

Siehe Auch[Bearbeiten]

UUGRN-Wiki verbessern („Stub”)

Dieser Artikel ist leider sehr kurz. Also: Sei mutig und mache aus ihm bitte einen guten Artikel, wenn du mehr zum Thema „RoarAudio/Programmieren/Simple” weißt.