0

最初にSocket(byte []形式)で完全にダウンロードせずにOggファイルをストリーミングする方法を知っている人はいますか?

私は音楽ストリーミングアプリケーションを作成しようとしていますが、MP3でそれを行うことができましたが、一定の制限の後にライセンスの問題が発生することを理解しているため、OGG(Vorbis)を使用したいと思います。このC#Vorbis Wrapperを見つけましたが、ドキュメントがなく、byte[]ストリームを再生する方法がわかりません。

私は以下を試しました

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

ただし、Wavファイルヘッダーが正しくないことを示す例外がスローされます。SoundPlayerは.wavファイルの再生にのみ使用されることを理解していますか?誰かがOGGファイルをストリーミングする方法を知っていますか?

4

2 に答える 2

3

ラッパーは非常に薄いもので、ネイティブの ogg コーデック関数を直接呼び出します。ov_read のドキュメントを探して、OggVorbisEncodedStream.Read() から何が返されるかを確認してください。生のPCMは私の推測です。ラッパーは、いかなる種類のフォーマット変換も試みません。

はい、SoundPlayer はここでは動作しません。wav が必要で、ストリーミングできません。入力として PCM のチャンクを取得できるプレーヤーが必要です。よくわかりませんが、NAudio プロジェクトは通常、このようなものに適しています。

于 2010-03-31T17:16:09.947 に答える
1
string filePath = "License.lic";

using (var stream = new StreamReader(filePath))
于 2015-06-04T14:53:11.350 に答える