【发布时间】:2013-10-30 10:32:56
【问题描述】:
我有一个枚举 Windows Media Player 播放列表的简单应用程序。它只是获取每个播放列表的名称并将其打印到控制台:
class Program
{
static void Main(string[] args)
{
var mediaPlayer = new WindowsMediaPlayer { uiMode = "invisible" };
var allPlaylists = mediaPlayer.playlistCollection.getAll();
Console.WriteLine("Found {0} wmp playlists");
for (int i = 0; i < allPlaylists.count; i++)
{
try
{
IWMPPlaylist wmpPlaylist = allPlaylists.Item(i); //Exception here!
Console.WriteLine("Playlist with index {0} has name '{1}'", i, wmpPlaylist.name);
}
catch (Exception e)
{
Console.WriteLine("Failed to get playlist with index {0} with error '{1}'", i, e.Message);
}
}
Console.ReadLine();
}
}
它在 Windows 8 上运行良好,但在 Windows8.1 上尝试从 IWMPPlaylistArray 集合中获取播放列表项时抛出异常:
System.IO.DirectoryNotFoundException 被捕获 H结果=-2147024893 Message=系统找不到指定的路径。 (来自 HRESULT 的异常:0x80070003) 来源=WMP_POC 堆栈跟踪: 在 WMPLib.IWMPPlaylistArray.Item(Int32 lIndex) 在 WMP_POC.Program.Main(String[] args) 中 内部异常:
即使在 Windows 8.1 上,它也适用于用户创建的播放列表,但对于像“所有音乐”、“所有视频”这样的预定义播放列表,则会发生异常。
请帮忙!
【问题讨论】:
-
我明白了。没有旋钮可以调整,抓住并继续您的生活。如果您无法忍受,请致电 Microsoft 支持。
-
我在 msdn 支持论坛 - social.msdn.microsoft.com/Forums/ru-RU/… 上发布了问题。但暂时没有答案。
标签: c# .net com windows-8.1 windows-media-player