在 C# 中使用 Windows Media Player 播放声音

Posted

技术标签:

【中文标题】在 C# 中使用 Windows Media Player 播放声音【英文标题】:Using Windows Media Player in C# for sound 【发布时间】:2013-08-29 07:40:12 【问题描述】:

所以我浏览了大约 10000 个论坛和帖子,这些帖子和帖子解释了如何在我的 C# 应用程序中使用 WindowsMediaPlayer 来播放声音。

到目前为止我所拥有的是

        WMPLib.WindowsMediaPlayer axMusicPlayer = new WMPLib.WindowsMediaPlayer();

        string path = Path.GetFullPath("music.mp3");

        axMusicPlayer.URL = path;

        axMusicPlayer.settings.setMode("loop", true);

        axMusicPlayer.controls.play();

现在,根据一百万人的说法,这应该可以工作,但是当我运行应用程序时没有声音,也许我错过了一些东西,但我刚刚达到了这个应用程序的临界点。我知道您可以使用 SoundPlayer,但我将其保留用于音效,这就是我想使用 WindowsMediaPlayer 播放音乐的原因。

【问题讨论】:

如果你使用WPF,你应该选择MediaElement,它可以播放Windows Media Player可以播放的各种声音。 您的声卡/耳机/扬声器工作正常吗? 是的,我的声音工作正常,我 100% 确定这一点。 @user2728238 mp3文件在哪里???? 感谢 Precious1tj 我进入我的程序并检查了一些东西,结果是 Path.GetFullPath("music.mp3");指向 ...\bin\debug\music.mp3,我假设 Path.GetFullPath 会找到位于 Resource 文件夹中的 music.mp3 文件,现在我已将 music.mp3 文件移动到调试文件夹,什么发生的是音乐播放大约一秒钟然后突然停止。头痛就是不停…… 【参考方案1】:

尝试播放.wav 文件。这对我有用。

【讨论】:

【参考方案2】:

我认为您应该尝试使用 .. 命令转到文件路径中的父目录。

由于 GetFullPath 的默认路径将您带到 MyProject\bin\Debug 文件夹,因此您需要返回 MyProject

例如:

    string path = Path.GetFullPath(@"..\..\music.mp3");

这将带您离开 Debug 和 bin 文件夹,进入项目的主文件夹。

我尝试使用您的解决方案,这对我有用!

【讨论】:

以上是关于在 C# 中使用 Windows Media Player 播放声音的主要内容,如果未能解决你的问题,请参考以下文章

使用C#播放音乐 使用windows media player

C# 从 Windows Media Player 获取当前歌曲源 url

如何在 C# 中同时播放多个声音?

使用 System.Windows.Media.Animation 移动按钮动画

C# 中使用using的三种方法

C# WPF 错误 无法将类型"System.Windows.Media.ImageSource"转换为"System.Drawing.Bitmap"