Sounds mit WPF abspielen kann man über der Klasse SoundPlayerAction. Implementiert werden kann das ganze sowohl im Xaml als auch im Code.

Im Xaml:

1
2
3
4
5
6
7
<Button Content="Play Sound">
    <Button.Triggers>
        <EventTrigger RoutedEvent="Button.Click">
            <SoundPlayerAction Source="pack://siteoforigin:,,,/Media/Windows Exclamation.wav" />
        </EventTrigger>
    </Button.Triggers>
</Button>

Im Xaml muss der Pfad zur Datei mit absoluter Angabe oder als siteoforgin-Datei (Inhalt, immer kopieren) angeben werden.

Im Code ist die Instanzierung der Klasse SoundPlayer und der Methodenaufruf Play ausreichend:

1
2
SoundPlayer sp = new SoundPlayer("Media/Windows Exclamation.wav");
sp.Play();

Auch hier muss das entsprechende Mediafile über den Eigenschaften immer in das Ausgabeverzeichnis kopiert werden.

Die Mediadatei kann über ein Dateipfad, einer Url und von einem Stream aus geladen werden.

Ergänzend sollte ich noch erwähnen, das die Klasse SoundPlayer, welche im Code implementiert wird, mehrere Methoden zum Abspielen von Sounddateien hat. Zum einen die genannte Play, welche das File asynchron abspielt. Die Methode PlaySync hingegen spielt das ganze synchron ab und mit PlayLooping wird das Mediafile in einer Endlosschleife abgespielt. Über der Methode Stop wird das Abspielen abgebrochen.

Standardmässig wird das File erst beim ersten Abspielen geladen, über die Methoden Load und LoadAsync kann dieser Vorgang im Voraus gemacht werden. Das Event LoadCompleted wird gefeuert, wenn das File geladen wurde.

Abgespielt werden können mit den Klassen SoundPlayerAction und SoundPlayer lediglich *.wav Dateien.

Viel Spaß beim entwickeln : )

Verwenden von SoundPlayerAction und SoundPlayer- WPF Quicky
Markiert in: