C# 在VisualStudio应用程序中播放声音
我正在Visual Studio 2015(C#)中制作一个程序,我想在其中添加声音效果。然而,我查阅了无数的教程,但没有一本是有效的,并且给了我很多错误。如果有人能给我一个从资源文件中播放.wav文件的代码,我将非常感激如果您想播放的文件是wav文件,请尝试这个C# 在VisualStudio应用程序中播放声音,c#,audio,visual-studio-2015,playback,C#,Audio,Visual Studio 2015,Playback,我正在Visual Studio 2015(C#)中制作一个程序,我想在其中添加声音效果。然而,我查阅了无数的教程,但没有一本是有效的,并且给了我很多错误。如果有人能给我一个从资源文件中播放.wav文件的代码,我将非常感激如果您想播放的文件是wav文件,请尝试这个 var player = new System.Media.SoundPlayer("c:\\tes.wav"); player.Play(); 在按钮1\u单击事件处理程序下添加以下方法代码: System.Media.Sou
var player = new System.Media.SoundPlayer("c:\\tes.wav");
player.Play();
在按钮1\u单击事件处理程序下添加以下方法代码:
System.Media.SoundPlayer player =
new System.Media.SoundPlayer();
player.SoundLocation = @"C:\Users\Public\Music\Sample Music\xxxx.wav";
player.Load();
player.Play();
我自己写了这个SounceController,希望它能有所帮助:
using System.Windows.Media; // add reference to system.windows.presentation.
using System;
using System.IO;
public class SoundController
{
private bool isPlaying;
private MediaPlayer player;
public SoundController()
{
player = new MediaPlayer();
}
~SoundController()
{
player = null;
}
public void Play(string path)
{
if (!File.Exists(path) || isPlaying)
return;
isPlaying = true;
player.Open(new Uri(path));
player.Play();
}
public void Stop()
{
if (isPlaying)
{
isPlaying = false;
player.Stop();
}
}
}
我建议您使用PInvoke使用winmm.dll播放声音 首先,将
System.Runtime.InteropServices
命名空间导入到项目中
using System.Runtime.InteropServices;
那么在你的课堂上你会有
[DllImport("winmm.dll")]
static extern Int32 mciSendString(string command, StringBuilder buffer, int bufferSize, IntPtr hwndCallback);
public void Play(string path ,string name)
{
// Open
mciSendString($@"open {path} type waveaudio alias {name}", null, 0, IntPtr.Zero);
// Play
mciSendString($@"play {name}", null, 0, IntPtr.Zero);
}
您可以播放名为的wave文件的正确路径发出的声音。给定名称不需要与wave文件的名称相同。例如:
Play(@"C:\soundeffect.wav", "soundEffect1");
通常声音效果是同时播放的。可以多次调用此方法以同时播放多个文件
Play(@"C:\soundeffect1.wav", "soundEffect1");
Play(@"C:\soundeffect2.wav", "soundEffect2");
Play(@"C:\soundeffect3.wav", "soundEffect3");
是否添加了对System.Windows.Presentation的引用?您还需要系统和IO名称空间。我更新了我的答案。@Catquatwa请描述一下你的错误。如果没有看到您的代码示例或遇到的问题,就很难提供无错误代码。。您还可以一起播放多个声音。WinForms?WPF?…还有什么吗?是的,它在问题中说.wav:)“.wav”没有帮助。我问的是你写的申请书的类型;不是声音文件的格式…抱歉,这是对先前评论的回复,该评论现在已被删除。如果您设置了正确的路径,100%的输出得到保证。请查看msdn参考。尝试查找逻辑,不要仅在输出后面运行:)终于工作了:)感谢您的努力获得了回报:)