我最近发现了适用于 Windows SDK 的 iTunes COM 的强大之处。我正在使用 Python 和 win32com 来与我的 iTunes 库对话。不用说,我的脑袋快要爆炸了。这个 API 棒极了。
不过我有一个问题,如何访问轨道的媒体种类属性?我查看了 SDK 中提供的帮助文件,但没有看到任何迹象。如果您进入 iTunes,您可以修改轨道的媒体类型。这样,如果您的音乐库中有一本有声读物,您可以将媒体种类设置为有声读物,它就会出现在 iTunes 的“书籍”部分中。非常漂亮。
我问的原因是因为我的图书馆播放列表中出现了一大堆垃圾有声读物。
到目前为止,这是我的代码。
import win32com.client
iTunes = win32com.client.gencache.EnsureDispatch('iTunes.Application')
track = win32com.client.CastTo(iTunes.LibraryPlaylist.Tracks.Item(1), 'IITFileOrCDTrack')
print track.Artist, '-', track.Name
print
print 'Is this track an audiobook?'
print 'How the hell should I know?'
提前致谢。
最佳答案
您可能无法找到它的一个原因是 com 对象引用的原子结构可能已过时。 MP4 结构中最受欢迎的原子列表在这里:http://atomicparsley.sourceforge.net/mpeg-4files.html我没有看到媒体类型的原子。我想您可以尝试通过 atomicparsley 解析结构,但据我所知,它只能找到它知道的原子。
简短回答:COM 对象可能不知道 MediaKind 属性。
关于python - 适用于 Windows SDK 的 iTunes COM 中的媒体种类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2977304/