9

プロジェクト内のフォルダにある.Wavファイルを再生しようとしています。

サウンドファイルは「Resource/Sounds/slot_roll_on.Wav」にあります

リソースフォルダは、プロジェクトのルートにある自分で作成したフォルダです。

これは私が.wavファイルを実行するために使用しているコードです

        Assembly a = Assembly.GetExecutingAssembly();
        Stream s = a.GetManifestResourceStream("kisscam.g.resources.Resources.Sounds.slot_roll_on.wav");
        SoundPlayer snd = new SoundPlayer(s);
        snd.Play();

サウンドを再生できませんでした。サウンドが見つからないためにWindowsのサウンドが鳴り続けます。

スタックオーバーフローのどこかで、正しいアセンブリパスがどうあるべきかを見つけるためにこのコードを見つけました。

            Assembly a = Assembly.GetExecutingAssembly();
            string[] resourceNames = Assembly.GetExecutingAssembly().GetManifestResourceNames();
            int i;
            for (i = 0; i < resourceNames.Length; i++)
            {

                MessageBox.Show(resourceNames[i]);


            }

これらの2つのパスを出力します

kisscam.Properties.Resources.resources

kissscam.g.resources

両方使ってみましたが、どれもうまくいきません。

誰かが私が間違っていることを知っていますか?

4

3 に答える 3

15

[プロジェクトのプロパティ]->[リソース]に移動して、Wavファイルをリソースに追加します。[オーディオ]を選択し、ファイルを参照します。その後、それをpfの一部として見ることができますPropeties.Resources。リソースフォルダに追加され、埋め込みに設定したり、コンテンツとして設定されたままにすることができます。

ここに画像の説明を入力してください

このようにアクセス

private void button1_Click(object sender, EventArgs e)
{
    SoundPlayer snd = new SoundPlayer( Properties.Resources.tada);
    snd.Play();

}
于 2013-01-24T00:37:52.037 に答える
7

プロジェクトで.wavファイルを再生して、プログラムに音楽を追加する場合。次に、このように.wavファイルを追加する必要があります。

   using System.Media; //  write down it at the top of the FORM

   SoundPlayer my_wave_file = new SoundPlayer("F:/SOund wave file/airplanefly.wav");
   my_wave_file.PlaySync(); // PlaySync means that once sound start then no other activity if form will occur untill sound goes to finish

ファイルのパスはスラッシュ(/)形式で記述する必要があることに注意してください。ファイルへのパスを指定するときは、スラッシュ()を使用しないでください。そうしないと、エラーが発生します。

于 2014-03-05T15:42:31.187 に答える
2

現在、私はそうするための2つの方法を知っています。以下を参照してください。

  1. ファイルパスを使用する
    最初にファイルをプロジェクトのルートフォルダーに配置します。次に、DebugまたはReleaseモードでプログラムを実行しても、ファイルには確実にアクセスできます。次に、クラスSoundPlayerを使用してそれをパリーします。

        var basePath = System.AppDomain.CurrentDomain.BaseDirectory;
        SoundPlayer player = new SoundPlayer();
        player.SoundLocation = Path.Combine(basePath, @"./../../Reminder.wav");
        player.Load();
        player.Play();
    
  2. リソースを使用する
    以下のアニメーションに従って、プロジェクトに「既存のファイル」を追加します。

ここに画像の説明を入力してください

        SoundPlayer player = new SoundPlayer(Properties.Resources.Reminder);
        player.Play();

他の方法と比較した場合のこの方法の長所は次のとおり
です。プログラムの実行時に、「bin」ディレクトリの下の「Release」フォルダのみをコピーする必要があります。

于 2019-01-24T02:29:38.470 に答える