Stream Ogg File - PullRequest
       62

Stream Ogg File

0 голосов
/ 31 марта 2010

Кто-нибудь знает, как передавать потоковые файлы Ogg, не загружая их сначала через сокет (в формате byte []).

Я пытаюсь создать приложение для потоковой передачи музыки, и мне удалось сделать это с MP3, но я понимаю, что после определенного ограничения возникают проблемы с лицензированием, поэтому я хочу использовать OGG (Vorbis). Я пытался найти этот C # Vorbis Wrapper , но без документации, и я не могу понять, как получить поток байтов [] для воспроизведения.

Я пробовал следующее

        var rawData = File.ReadAllBytes(@"SoundFile.ogg");
        var enc = new OggVorbisEncodedStream(rawData);
        var sp = new SoundPlayer(enc);
        sp.Play();

Но возникает исключение, показывающее, что заголовок файла Wav неверен. Я так понимаю, SoundPlayer используется только для воспроизведения файлов .wav? Кто-нибудь знает, как транслировать файл OGG?

Ответы [ 2 ]

3 голосов
/ 31 марта 2010

Оболочка очень тонкая, она напрямую вызывает функции нативного кодека ogg. Ищите документы ov_read, чтобы увидеть, что вы получите от OggVorbisEncodedStream.Read (). Сырая PCM была бы моей догадкой. Оболочка не пытается преобразовать формат.

Да, SoundPlayer здесь не будет работать, он требует wav и не может транслироваться. Вам понадобится плеер, который может принимать куски PCM в качестве входных данных. Не уверен, что для этого, проект NAudio обычно хорош для подобных вещей.

1 голос
/ 04 июня 2015
string filePath = "License.lic";

using (var stream = new StreamReader(filePath))
...