这个问题在这里已经有了答案:
How to play a WPF Sound File resource
(4 个回答)
7年前关闭。
首先,我搜索了网站并查看了 this但不幸的是,它对我没有多大帮助。
每当我单击我制作的 Frog 图像时,我想播放一个 .wav 文件作为资源。这是我的代码:
void newFrog_MouseUp(object sender, MouseButtonEventArgs e)
{
System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"G:\COSR3S\FrogsAndLilyPads\FrogsAndLilyPads\Sounds\FrogCroak.wav");
player.Play();
}
当然这有效,但我的问题是计算机之间的目录更改,所以我认为我必须将其作为资源播放。我不知道该怎么做。我是一个相当新的程序员,请记住。
我在前面提到的 link 的基础上尝试了一些变体并玩弄它。例子:
void newFrog_MouseUp(object sender, MouseButtonEventArgs e)
{
Uri uri = new Uri(@"pack://application:,,,/Sounds/FrogCroak.wav");
var player = new MediaPlayer();
player.Open(uri);
player.Play();
}
我也尝试过这样做,虽然我认为这个行不通,但我还是尝试了:
void newFrog_MouseUp(object sender, MouseButtonEventArgs e)
{
Uri uri = new Uri(@"pack://application:,,,/Sounds/FrogCroak.wav");
System.Media.SoundPlayer player = new System.Media.SoundPlayer(uri);
player.Play();
}
我不确定“
pack://application:,,,
”是否是指正在播放的文件。我也试着让它好像是一个图像,像这样:
void newFrog_MouseUp(object sender, MouseButtonEventArgs e)
{
System.Media.SoundPlayer player = new System.Media.SoundPlayer(new Uri(@"pack://application:,,,/Sounds/FrogCroak.wav", UriKind.RelativeOrAbsolute));
player.Play();
}
所以而不是
new BitmapImage
我做了new System.Media.SoundPlayer
只是发现它不会那样工作。编辑:我忘了提到这有效,但它没有播放任何声音。
void newFrog_MouseUp(object sender, MouseButtonEventArgs e)
{
Uri uri = new Uri(@"pack://application:,,,/Sounds/FrogCroak.wav");
var player = new MediaPlayer();
player.Open(uri);
player.Play();
}
Edit2:从技术上讲,可能的重复并没有解决我的问题,但根据接受的答案,这是不可能的。有没有其他方法可以使用不同的方法播放音频?
最佳答案
这适用于我使用带有命令行应用程序的 Visual Studio 2013:
var notificationSound = new SoundPlayer(Timer.Properties.Resources.NotificationSound);
notificationSound.PlaySync();
这允许我在移动可执行文件并重命名原始声音文件后从应用程序播放声音(只是为了检查它是否实际嵌入)。
关于c# - 在 WPF 中作为资源播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29552373/