WPF应用程序mp3声音文件的相对路径

时间:2014-01-24 09:13:39

标签: c# wpf audio mp3 relative-path

我正在使用Visual Studio 2012构建一个WPF项目,我发现相对路径存在问题。

具体来说,我希望在选中ToggleButton时播放声音。

这是我按钮的代码:

<ToggleButton Name="Circles" Margin="88,104,86,172" Background="#FFFFD0CD" Foreground="Black" Checked="Circles_Checked">Circles</ToggleButton>

如果我这样写:

    private void Circles_Checked(object sender, System.Windows.RoutedEventArgs e)
    {

    MediaPlayer mplayer = new MediaPlayer();

    mplayer.Open(new Uri("C:\\Users\\user1\\Documents\\Visual Studio 2012\\Projects\\RehabilitationGUIProject\\RehabilitationGUIProject\\circles.mp3", UriKind.Relative));

    mplayer.Play();
    }

一切都如预期的那样有效。但我希望这些代码能够在其他机器上运行,而不仅仅是我的机器。如果我必须将声音移动到另一个位置呢?我想使用相对路径并在项目文件夹中移动每个声音。

所以我在我的根项目中创建了一个名为Sound的新文件夹,结构如下:

RehabilitationGuiProject
\属性
\参考
\ BIN
\对象
\声音  \ circles.mp3

...其他文件.xaml

所以我在上面编写了相同的代码行,改变了这一行:

mplayer.Open(new Uri(@"/Sounds/circles.mp3", UriKind.Relative));

但没有播放声音。从项目文件夹播放声音的正确相对路径是什么?

1 个答案:

答案 0 :(得分:4)

路径必须相对于执行应用程序的文件夹。

mplayer.Open(new Uri(@"../../Sounds/circles.mp3", UriKind.Relative));

(假设你的exe是从Bin / Debug文件夹运行的)