如何将本地文件添加到kodi插件?

时间:2016-09-26 15:35:54

标签: kodi

如何将本地文件添加到kodi插件? 在以下示例中,Internet文件(url ='http:// ...')有效。但是本地文件(url ='file:// ...')没有。

import xbmc
import xbmcgui
import xbmcplugin
import xbmcaddon
import xbmcvfs
import sys
addon_handle = int(sys.argv[1])
xbmcplugin.setContent(addon_handle, 'songs')

#this works
xbmcplugin.addDirectoryItem(handle=addon_handle, url='http://www.noiseaddicts.com/samples_1w72b820/2537.mp3', listitem=xbmcgui.ListItem('internet_file'))

#this do not work
xbmcplugin.addDirectoryItem(handle=addon_handle, url='file://media/usb0/music/bn/local_file.mp3', listitem=xbmcgui.ListItem('local_file'))

xbmcplugin.endOfDirectory(addon_handle)

2 个答案:

答案 0 :(得分:1)

这应该是文件系统中没有任何前缀的绝对路径,例如'/foo/bar/spam.mp4'(* nix)或'c:\\foo\\bar\\spam.mp4'(Win)。我认为,网络文件系统也可以工作,对于它们你需要像smb://或nfs://`这样的前缀,但不需要本地文件。

答案 1 :(得分:1)

在搜索了一段时间后,我找到了Kodi的special://协议:http://kodi.wiki/view/Special_protocol,我在这里引用:

  

“特殊协议”是Kodi对平台依赖的解决方案   目录。公共目录名称分配了一个特殊的:// [名称]   在科迪内部传递然后翻译成的路径   操作系统看到之前的平台特定路径。这有帮助   将大部分平台混乱集中在代码中。

使用以下代码的special://协议将执行此操作:

xbmcplugin.addDirectoryItem(handle=addon_handle, 
                            url='special://home/bn/local_file.mp3',
                            listitem=xbmcgui.ListItem('local_file'))