9

SoundPlayerはWPFプログラムで効果音を再生するために使用します。ただし、2つの効果音を同時に再生すると、古い効果音が新しい効果音に置き換わることがわかります(つまり、新しい効果音は古い効果音を終了して再生します)。新しいものが再生されます。

SoundPlayer wowSound = new SoundPlayer("soundEffect/Wow.wav");

SoundPlayer countingSound = new SoundPlayer("soundEffect/funny.wav");

wowSound.Play(); // play like background music

countingSound.Play();  // from click to generate the sound effect
4

3 に答える 3

7

ユーザーインターフェイススレッドを使用してファイルをSoundPlayer.PlaySync()再生するwhichを使用して、最初に再生されるようにすることができます。その後、再生終了後に再生されます.wavwowSoundcountingSoundwowSound

SoundPlayer wowSound = new SoundPlayer(@"soundEffect/Wow.wav"); //Initialize a new SoundPlayer of name wowSound
SoundPlayer countingSound = new SoundPlayer(@"soundEffect/funny.wav"); //Initialize a new SoundPlayer of name wowSound
wowSound.PlaySync(); //Play soundEffect/Wow.wav synchronously
countingSound.PlaySync();  //Play soundEffect/funny.wav synchronously 

注意SoundPlayer同時サウンドの再生はサポートされていないため、を使用して同時に複数のサウンドを再生することはできません。一度に2つ以上のサウンドを再生しSystem.Windows.Media.MediaPlayerたい場合は、より良いオプションです

MediaPlayer wowSound = new MediaPlayer(); //Initialize a new instance of MediaPlayer of name wowSound
wowSound.Open(new Uri(@"soundEffect/Wow.wav")); //Open the file for a media playback
wowSound.Play(); //Play the media

MediaPlayer countingSound = new MediaPlayer(); //Initialize a new instance of MediaPlayer of name countingSound
countingSound.Open(new Uri(@"soundEffect/funny.wav")); //Open the file for a media playback
countingSound.Play(); //Play the media
于 2012-12-18T03:35:49.200 に答える
0
using System.Threading.Tasks;

private void MyMethod()
{
    Task.Factory.StartNew(PlaySound1);
    Task.Factory.StartNew(PlaySound2);
}

private void PlaySound1()
{
    SoundPlayer wowSound = new SoundPlayer("soundEffect/Wow.wav");
    wowSound.Play();
}

private void PlaySound2()
{
    SoundPlayer countingSound = new SoundPlayer("soundEffect/funny.wav");
    countingSound.Play();
}

編集:

Picrofoは正しいです。この方法では実行できませんが、MSDirectShowの単なるラッパーであるDirectShow.NETを使用してこれを実現できるようです...

于 2012-12-18T04:11:48.933 に答える
0

WPFとC#の組み込みプレーヤーをしばらく使用した後、機能が不足していることがわかったので、代わりにNAudioに移動しました。

http://naudio.codeplex.com/

もう少しコードを書く必要がありますが、要件が変更され(常に変更されます)、組み込みのメディアプレーヤーが変更されなくなったことを知ったら、喜ぶでしょう。

ソースコードにはいくつかのサンプルが付属しており、Stack Overflow、codeplexサイト、およびGoogleを検索するだけでさらにヘルプを見つけることができます。

于 2012-12-18T09:45:23.677 に答える