using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace 質問用d { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { PlaySound(@"C:\Users\Desktop\VisuadDtudio パス \bin\Debug\点火3_ignition03.wav"); } private System.Media.SoundPlayer player = null; private void PlaySound(string waveFile) { if (player != null) StopSound(); player = new System.Media.SoundPlayer(waveFile); player.Play(); } private void StopSound() { if (player != null) { player.Stop(); player.Dispose(); player = null; } } } } ```プログラムでwavファイルを効果音にしようかと思っています。 何回かはうまく音が入っていたのですが気がつけば音が鳴らなくなりました。 調べているとそもそものパソコンのwavファイルをダブルクリックで再生しても一度目は無音で再生されていて 二回目以降の再生ボタンでは音がなります。 1秒くらいの効果音でして、プログラムの立ち上げる速さとの問題の気がしますが詳しい事はよくわかりません。 プログラムと関係がないかもしれませんが皆さんがどのように対応されているかお聞かせ願えませんでしょうか? ちなみに私が扱っているのはc#です。 パソコンで再生しているプログラムはGroove ミュージックと言うソフトでした。 おそらく私のアプローチが間違えているのだと思いますがご指導頂ければ嬉しいです。
System.Media.SoundPlayerクラスでの再生でしょうか?
また、別のwavファイルを作り2秒や3秒程度のものは1回目から再生できるでしょうか?
別のwavファイルで1秒程度のものは同様の症状が出ますでしょうか?
またこのSoundPlayerクラスで再生中にべつのwavファイルを再生しようとするとか、別スレッドで別のSoundPlayerを再生する事はできなかったと思います。(再生する事はできるが最初のwavファイルを中断した気がします。音がでなかったと記憶してます)
コメントありがとうございます。
3秒くらいのものは再生できました。
もっと長いものも再生できましたがライターの火をつけるような短いものが再生できなくていろいろ考えておりました。
コードを記入してみます。
パソコンの「常にこのアプリを使って開く」と言うので違うプレーヤーにしたら治りました。
パソコンの仕組みがわからないのでたまたまかもしれないのですが取り敢えず解決したようです。
腑に落ちませんがありがとうございました。
再生できましたか・・・。
複数のプレーヤーが入っているのですね。
それにしても、どのアプリで開くかの判断で時間が掛かっていたのでしょうかねぇ・・。
回答1件
あなたの回答
tips
プレビュー