質問: 現在、C#にて音楽再生アプリを作成しています。 以下の要件を満たすようなStream(もしくはそれに準じるもの)を探しているのですがいまいち見つけられません。 ・単一のStreamの末尾にbyte配列を書き込みながら、同時に先頭から読込できる。 書き込み用スレッドと読み込み用スレッドを作成し、 書き込み用スレッドでは5秒程度に分割された音楽ファイルをweb上からHttpリクエストで取得し、byte配列として順次Streamに書き込んでいく。 一方、ストリーミング再生を実現するため、(上記の音楽ファイルのStreamへの書き込みを行う傍ら)、読込用スレッドで先頭からStream上のbyte配列を読込み、再生する。 このような要件を実現したいのですが、いまいちうまくいきません。 MemoryStreamですとFIFOや排他アクセスが実現できず、 Queueですとどうしても再生時に切れ目が出来てしまいます。 標準ライブラリでは無いとしても、継承して実装できれば構いません。 宜しくお願い致します。
回答: サウンドのストリーミング再生は本質的にはXAudio2などの低レベルな再生キューにアクセスできるAPIを使用する必要があります。C#であればSharpDXなどのラッパーを利用することになるかと思います。