在 c#.NET 中播放来自 URI 的声音

Play sound from URI in c#.NET

有什么方法可以使用 soundcloud 流 URI 在我的 c#.NET 应用程序中播放音频吗?我找到了一种使用 windows 8 部手机执行此操作的方法:

new AudioTrack(new Uri("[your soundcloud uri]", UriKind.Absolute), "[Track Name]", "[Artist]", "[Album]", null)

但我找不到在桌面 .NET 框架中执行此操作的方法。有人可以对此有所启发吗?

由于 SoundCloud 使用 mp3 作为流媒体格式,您可以使用 WMPLib。首先你需要添加它的引用(项目 -> 引用 -> 添加引用 -> COM -> Windows Media Player)

var wplayer = new WMPLib.WindowsMediaPlayer();
wplayer.URL = "http://somewebsite.com/somedir/somefile.mp3";
wplayer.controls.play();

但在没有 Windows 媒体播放器(如 Windows N、KN)的计算机上,您可能需要第三方库来播放 soundcloud 流。例如,NAudio.

ps: btw,WMPLib的播放是异步的,所以需要注册StateChange事件才能知道音乐是否结束。请参阅 MSDN 文章。

参考:MSDN Article