【问题标题】:How can I use iTunesLib in unattended mode?如何在无人值守模式下使用 iTunesLib?
【发布时间】:2011-07-16 14:53:57
【问题描述】:

我正在制作一个小应用程序来自动更新我的 iPod。我的目的是将我的 iTunes 库与我的实际库同步,并为 iPod 重新编码质量较低的歌曲。

我使用 iTunes.exe 中的互操作“iTunesLib”,并且正在使用 C#。

我的程序运行良好,但 iTunes 存在很大问题。如果在此过程中 iTunes 打开了一个模态框(可能是“导入歌曲时出错”,或者只是在 iTunes 启动时“有新的更新可用”......),那么我的应用程序完全卡住了,必须等待用户关闭弹出窗口。

这很烦人,因为我希望在晚上运行我的应用程序,而重新导入/重新编码的过程需要一段时间。

有没有办法告诉 iTunes 不弹出任何消息,或者要求它关闭已经打开的消息?

【问题讨论】:

    标签: c# itunes com-interop itunes-sdk


    【解决方案1】:

    也许尝试调用传入FALSE 的IiTunes.VisualsEnabled 方法。

    来自 iTunes COM SDK:

    HRESULT IiTunes::VisualsEnabled  (  [in] VARIANT_BOOL  shouldEnable   )   
    
       Set whether visuals should be displayed. 
    
    
    Parameters:
     shouldEnable  True if visuals should be displayed. 
    
    Return values:
     S_OK  The operation was successful.  
     E_ACCESSDENIED  Visuals cannot be enabled or disabled. For example, this can happen if the iTunes Store is currently being viewed.  
     E_FAIL  An unexpected error occurred.  
    

    【讨论】:

    • 名称可能有歧义,但是这个属性(在C#中是一个属性,不是方法)只是打开或关闭播放歌曲时显示的视觉效果。当我调用iTunesAppClass 的构造函数时,会生成iTunes 进程,并且UI 在构造函数返回之前变得可见。如果我的问题有解决方案,那就是在调用构造函数之前做一些事情。但是无论如何都没有提供我可以调用的静态方法,一切都是iTunesAppClass的成员。我仍然没有解决方案。
    • 好的。您可以在这里提交功能请求:developer.apple.com/bugreporter
    【解决方案2】:

    好吧,在这个问题开放了一年多之后,正确的答案似乎是:我不能

    不过有几个alternative libraries 可能有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-05
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      • 2020-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多