PyOBJC MLMediaLibrary

Posted

技术标签:

【中文标题】PyOBJC MLMediaLibrary【英文标题】: 【发布时间】:2019-10-31 16:47:04 【问题描述】:

我的第一个问题在这里。在 PyOBJC 上查找具体示例至少可以说是一项挑战, 所以我想我可以试试问.. 我的python脚本:

from MediaLibrary import * mediaLibrary = MLMediaLibrary.alloc().initWithOptions_(None)

抛出此错误:

[MLMediaLibraryImpl connectToService]_block_invoke 连接中断 2019-10-31 17:33:56.384 Python [77412:20497679] 获取 MLMediaLibrary 错误 远程对象代理:错误域=NSCocoaErrorDomain 代码=4097 “连接到名为 com.apple.MediaLibraryService 的服务” UserInfo=NSDebugDescription=连接到服务命名 com.apple.MediaLibraryService

mediaLibrary 确实已实例化,但无法找到任何媒体源。

我看到有人在 Xcode 和 Objective-C 中遇到了这个问题,说这可能是 沙盒或权利问题,但在我的 Mac 上的 Xcode 中,没有任何这些都可以正常运行。

有什么想法吗?帮忙?

【问题讨论】:

奇怪:我遇到了同样的错误,然后又试了一次,它似乎工作了。分配一次,然后在 try 块中调用 initWithOptions_(None) 也可能会有所帮助,如果失败再试一次。 好的,我明白你在说什么,再次实例化会消除错误,但会使对象对 KeyValue-Observation 无响应。我发现link 谈到_block_invoke connection interrupted 部分可能是内存限制,但由于在获取任何资产甚至发现源之前引发错误,我仍然很难过.. 【参考方案1】:

这似乎是对如何使用此库的限制,SO 问题“XPC error when using MLMediaLibrary from command line daemon”提到该框架只能从应用程序包中使用。

【讨论】:

感谢您的回答!是的,也许吧,但很难完全相信它就是这样。因为我也有 MediaLibrary 框架在命令行工具中运行并加载所有资产。不包括任何权利甚至播放列表文件。我目前正在尝试使用 thispy2app 教程使其尽可能像本机应用程序,但我不确定 setup.py 文件中是否有 OPTION 我可以设置,或者让它更像一个应用程序包?

以上是关于PyOBJC MLMediaLibrary的主要内容,如果未能解决你的问题,请参考以下文章

Cocoa/PyObjC 分布式对象缺少一些东西

使用 pip、easy_install、manual 安装 PyObjc 时遇到问题

python pyobjc的例子。

python macOS PyObjc Computername

python PyObjc系统Icon.py

PyObjC IVar存取器