【问题标题】:IWMPPlaylistArray.Item(index) throws IO exception on Windows 8.1IWMPPlaylistArray.Item(index) 在 Windows 8.1 上引发 IO 异常
【发布时间】: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


【解决方案1】:

我进行了更深入的调查,发现“所有音乐”播放列表应该位于“C:\Users[username]\AppData\Local\Microsoft\Media Player\Sync Playlists\en-US\00057566”在 Windows 8.1 上根本不存在,而在 Windows 8 上它存在。这似乎是问题的根本原因。

正如我在 Windows 8.1 上已经提到的,该问题仅存在于预定义的播放列表中,最终我发现以下解决方法似乎适用于 Windows 8.1。如果您想获取“所有音乐”播放列表,只需使用以下代码:

IWMPPlaylist allMusicPlaylist = mediaPlayer.mediaCollection.getByAttribute("MediaType", "Audio"); 

根据the table on the msdn更改“MediaType”属性可以得到“All Video”、“All Pictures”等预定义的播放列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多