0

audio 要素を含む wav ファイルを再生しようとしています。これは、ファイルを直接参照するとうまく機能しますが、ac# FileStream を介してストリーミングしようとすると、機能しなくなります。以下のコードは PC の Chrome と Opera で完璧に動作しますが、Ipad と Firefox で動作するようにしようとしています。.net フレームワーク 2.0 を使用していますが、wav を使用する必要があります。

<audio id="audio" src="www.acme.com/streamer.aspx?music=test.wav" controls preload="auto"></audio> Not working
<audio id="audio" src="test.wav" controls preload="auto"></audio> Working

以下のストリーム関数:

string wavFileName = test.wav;
FileStream soundStream;
long FileSize;


soundStream = new FileStream(@"\\netshare\" + wavfileName, FileMode.Open, FileAccess.Read, FileShare.Read, 256);
FileSize = soundStream.Length;
byte[] Buffer = new byte[(int)FileSize];
int count = 0;
int offset = 0;
while ((count = soundStream.Read(Buffer, offset,
Buffer.Length)) > 0)
{
    Response.OutputStream.Write(Buffer, offset, count);
}
Response.Buffer = true;
Response.Clear();

Response.AddHeader("Content-Type", "audio/wave");
Response.AddHeader("Content-Disposition", "attachment;filename=" + wavfileName);
Response.ContentType = "audio/wave";
Response.BinaryWrite(Buffer);
if (soundStream != null)
{
    soundStream.Close();
}

Response.End();

(ちなみに、これは私の最初の投稿です。ルールに違反していないことを願っています)

4

1 に答える 1

2

コードは問題ないようです。wav ファイルが write PCM 形式であることを確認する必要があると思います。一部のブラウザでは、特定の PCM の再生に問題があります。ブラウズ(html5))がwavファイルをサポートしているからといって、実際にすべてのwavタイプを再生できるわけではないことがわかりました。

Response をフラッシュすることもできます。

于 2012-06-12T18:56:06.190 に答える