Frage

Ich habe einen Server, die Daten über eine Socket sendet, sind die Daten eine wav ‚Datei‘. Ich kann einfach die Daten auf der Festplatte schreiben und es dann in WMP spielen, aber ich habe keine Ahnung, wie ich es spielen kann, wie ich es aus dem Sockel zu lesen. Ist es möglich?

Bonus Frage: Wie würde ich es tun, wenn der Strom im MP3-Format oder ein anderes Format war

Dies ist für Windows in native C ++.

War es hilfreich?

Lösung

Weil du hast gesagt, WMP, ich bin die Frage der Annahme gilt für versuchen, eine WAV-Datei auf einem Windows-Rechner zu spielen. Wenn nicht, diese Antwort ist nicht relevant.

Was möchten Sie tun, ist nicht trivial. Es gibt einen guten Artikel hier auf Code-Projekt, das das Windows-Audio beschreibt Modell. Es beschreibt, wie das Audio-Gerät einzurichten und wie die Daten in das Gerät für die Wiedergabe streamen. Sie „einfach“ benötigen, um Daten zu liefern, in aus Ihrer Steckdose als Daten für die Wiedergabe Puffer kommen. Aber das ist, wo alle die schwierige Arbeit. Sie müssen sicher sein, dass

  • Sie haben genügend Daten für eine Wiedergabe
  • beginnen
  • Gehen Sie mit dem Fall, wenn der Sockel für die Daten verhungert ist und Sie haben nichts mit dem Wiedergabepuffer senden
  • Sie können die Daten aus der Steckdose mit genügend Geschwindigkeit lesen Sie die Wiedergabe Puffer voll zu halten

Es ist eine interessante Übung. Aber schwierig.

Andere Tipps

Mark ist recht über dieses ein heikles Problem. Es kann sein, weniger heikel, wenn Sie Directsound statt waveOut verwenden. Hier ist ein Artikel Wave-Dateien von der Festplatte auf Streaming: Streaming aus dem Netz im Wesentlichen ist der gleiche Prozess. Stellen Sie sicher, dass Sie genügend Daten aus dem Netzwerk zu sammeln, bevor Sie beginnen - Sie mehr als die 2-Puffer wollen werden der Artikel erwähnt.

Noch weniger heikel wäre FMOD . Von der FAQ :

Verbesserte Internet-Funktionen

  • Internet-Audio-Streaming. Benutzerdefinierte Internet-Streaming-Code enthalten ist, die für die nahtlose Shoutcast ermöglicht, Icecast und HTTP-Unterstützung Streaming.
  • Download-Fähigkeit. Ein Nebeneffekt der modularen Dateisystem des BMVg, die Netzwerk-Dateien unterstützt, auch statische Proben können das Internet geladen abgeschaltet werden.

Dateiformat-Unterstützung : FMOD unterstützt derzeit eine breite Palette von Audio-Dateiformaten. Teilliste :

  • MP3 - (MPEG I / II Layer 3, einschließlich VBR-Unterstützung)
  • OGG - (Ogg-Vorbis-Format)
  • WAV -. (Microsoft Wave-Dateien, inlcluding komprimiert wavs PCM, MP3 und IMA ADPCM komprimierte wav

Mark ist recht über dieses ein heikles Problem. Die waveOutXXXX API ist sehr alt (es früher Windows 95) und erfordert mehr fehleranfällige Codierung als Sie denken. Sie werden leichter mit den API in C ++ die Interaktion haben als mit C #. So stellen Sie sicher, das ist etwas, was Sie wirklich tun wollen.

Wenn Ihr Strom ist etwas anderes Format als WAV-Datei Daten (wie MP3 oder WMA), werden Sie den zusätzlichen Schritt der Decodierung der Daten in der WAV-Format und spielt sie mit dem waveOutXXXX API durchführen. eine gute Komponente der Suche nach MP3-Decodierung zu tun ist schwieriger als man erwarten würde - ich denke, das an die Fraunhofer-Lizenzsituation zusammenhängt (Sie sollen sie bezahlen, wenn Sie MP3-Code in irgendeiner Weise zu verwenden)

.

Ich würde ein Off-the-shelf Produkt finden, dies zu tun, es sei denn, Sie die Lernerfahrung wollen.

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