ボタンをクリックすると、Web ページでサウンドを再生したいと考えています。これは私のコードですが、エラーが表示されます。
SoundPlayer x = new SoundPlayer();
x.SoundLocation = "WindowsBalloon.wav";
//x.Play();
x.PlaySync();
エラー:
指定した場所にサウンド ファイルが存在することを確認してください。
しかし、ファイルは私のプロジェクトに存在し、アドレスが正しいと確信しています。
System.Media.Soundplayerクラスを使用して Web ページ上のファイルを再生することはできません!!!
クライアント側ではなくサーバー側でサウンドを再生します。
以下のリンクで述べたように
- Web ホスト上の C# System.Media.SoundPlayer クラスの問題
-自動再生サウンドの最も「互換性のある」方法は何ですか?
<embed>
tag:<embed>
タグは、外部 (非 HTML) コンテンツのコンテナを定義します。(これは HTML5 タグであり、HTML 4 では無効ですが、すべてのブラウザーで機能します)。 <embed height="100" width="100" src="horse.mp3" />
<object>
tag:<object>
タグは、外部 (非 HTML) コンテンツのコンテナを定義することもできます。<object height="100" width="100" data="horse.mp3"></object>
<audio>
tag: この<audio>
要素は HTML5 要素であり、HTML 4 では無効ですが、すべてのブラウザーで機能します。<audio controls="controls" height="100" width="100">
<source src="horse.mp3" type="audio/mp3" />
<source src="horse.ogg" type="audio/ogg" />
<embed height="100" width="100" src="horse.mp3" />
</audio>
ビデオを別の形式に変換する必要がある html5 ベースのソリューションの問題に注意してください。
-<audio>
要素は HTML 4 および XHTML として検証されません。
-<embed>
要素は HTML 4 および XHTML として検証されません。
- この<embed>
要素は、エラーを表示するために「フォールバック」することはできません。
<object>
または <embed>
htmlタグを使用する必要があります。
<object data="WindowsBalloon.wav"></object>
<audio src="WindowsBalloon.wav">
<p>Your browser does not support the audio element.</p>
</audio>
これはあなたが欲しいと思うものです:
Server.MapPath(string path);
Web サーバー上の指定された仮想パスに対応する物理ファイル パスを返します。
パラメータ: path: Web サーバーの仮想パス。
戻り値: path に対応する物理ファイル パス。
SoundPlayer s = new SoundPlayer();<br>
s.SoundLocation = **Server.MapPath("WindowsBalloon.wav");**<br>
s.PlaySync();
指定されたフルパス、つまりc:\wavfiles\WindowsBalloon.wav
上記の「wavfiles」はユーザー特権フォルダーです。
use x.PlayLooping()
サウンドファイルを連続再生したい場合の機能
気をつけて!
1 つのボタンを使用してループを終了します。そうしないと、サウンド ファイルが継続的に実行されます。ループを終了することをお勧めします: -
コード
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
x.Stop()
End Sub
「C:/WindowsBalloon.wav」などのドライブ文字をパスに追加してみてください。しかし、これはクライアント側では再生されません。クライアント側でHTML5を試すことをお勧めします。