Simon P Stevens
DllImport на самом деле больше не нужен для воспроизведения звуков.
Если вам действительно нужно использовать DllImport для использования неуправляемых звуковых API, взгляните на эту статью: Воспроизведение файлов .wav с помощью C#[^(Обратите внимание, что эта статья написана с .Net 1.1, и теперь в новых версиях фреймворка есть гораздо более простые способы воспроизведения звука)
Если вы просто воспроизводите файлы .wav и вам не нужно использовать проигрыватель windows media, вы можете просто сделать это:
System.Media.SoundPlayer player = new System.Media.SoundPlayer("SourceFile.wav");
player.Play();
Если вы хотите воспроизводить другие типы носителей или на самом деле хотите воспроизводить звуки через проигрыватель windows media, вы сначала добавляете ссылку на C:\Windows\System32\wmp.dll а затем используйте этот код:
WMPLib.WindowsMediaPlayer wmp = new WMPLib.WindowsMediaPlayerClass();
wmp.URL = "SoundFile.wav";
wmp.controls.play();
Это поддерживает любой тип файлов, который поддерживает медиаплеер.
Наконец, вы могли бы использовать
Пространство имен носителей XNA framework[
^]. Это поддерживает большинство распространенных форматов, но недостатком является то, что вам нужно будет ссылаться на библиотеки XNA framework:
Uri songFile = new Uri("SoundFile.mp3");
Song yourSong = Song.FromUri("YourSong", songFile );
MediaPlayer.Play(yourSong);
Simon P Stevens
Пример проигрывателя windows media будет работать с любым типом файлов, который поддерживает проигрыватель windows media. Я также обновил ответ, включив в него пример XNA media, который будет поддерживать другие форматы.