如何从相对路径文件夹播放MP3?WPF MediaElement播放异常排查
解决WPF MediaElement相对路径播放MP3无响应问题
针对你遇到的相对路径播放失效问题,可按以下步骤排查解决:
修正相对路径格式
XAML中路径开头的反斜杠会被解析为绝对根路径,而非相对于应用程序目录的路径。将Source改为以下任一格式:<MediaElement x:Name="background_Sound" Source="Music/Background_sound.mp3" LoadedBehavior="Pause" Volume="0.3" />或
<MediaElement x:Name="background_Sound" Source="./Music/Background_sound.mp3" LoadedBehavior="Pause" Volume="0.3" />确保文件被复制到输出目录
在Visual Studio中右键项目里的Background_sound.mp3文件,选择「属性」,将「复制到输出目录」设置为如果较新则复制或始终复制。这样编译后,MP3文件会被同步到程序运行的bin/Debug或bin/Release目录下的Music文件夹中,保证程序能找到文件。替换LoadedBehavior修改方式为直接调用Play方法
在构造函数中修改LoadedBehavior的时机可能早于媒体文件加载完成,改用直接调用Play方法更可靠:public MainWindow() { InitializeComponent(); background_Sound.Play(); }验证路径有效性(可选)
若仍有问题,可在后台代码中检查文件是否存在:using System.IO; using System.Windows; public MainWindow() { InitializeComponent(); string soundPath = Path.Combine(Environment.CurrentDirectory, "Music", "Background_sound.mp3"); if (File.Exists(soundPath)) { background_Sound.Source = new Uri(soundPath, UriKind.Absolute); background_Sound.Play(); } else { MessageBox.Show("音频文件不存在:" + soundPath); } }
内容的提问来源于stack exchange,提问作者Hai Thanh
相关产品推荐
相关产品推荐

