Wie kann ich eine lokale Datei zu einem Kodi Addon hinzufügen? Im folgenden Beispiel funktioniert die Internetdatei (URL = 'http: // ...'). Aber die lokale Datei (URL = 'Datei: // ...') nicht.Wie kann ich eine lokale Datei zu einem Kodi Addon hinzufügen?
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)
Ihre Antwort richtig ist. daher aufgewertet. Trotzdem löst es das Problem nicht in einem Addon, das in verschiedenen Dateisystemen funktionieren soll (Linux, Win etc.) – wolfrevo
Ihr Kommentar macht keinen Sinn. Ein Pfad zu einer lokalen Datei befindet sich immer in einem Dateisystem, in dem sich diese Datei befindet. Sie müssen diesen Pfad irgendwie erhalten, indem Sie zum Beispiel ein Verzeichnis mit 'os.listdir()' scannen. Ein hardcoded Pfad wird nicht überall funktionieren, weil es einfach unmöglich ist. Wie können Sie garantieren, dass sich die Datei an jedem Computer befindet, auf dem Ihr Addon ausgeführt wird? Dies ist nicht zu erwähnen, dass die Kompatibilität mit verschiedenen Dateisystemen nicht in Ihrer Anfangsfrage war. –
Für meine Zwecke macht es Sinn, weil ich möchte, dass das Addon in verschiedenen Dateisystemen funktioniert. Zum Glück haben die Entwickler von Kodi dieses Problem behoben, als sie das "special: //" -Protokoll eingeführt haben, das möglich macht, was unmöglich erscheint. Siehe meine Antwort. IMHO Kompatibilität mit verschiedenen Dateisystemen ist implizit durch Addon erforderlich. Tut mir leid, wenn ich es nicht explizit ausgesprochen habe. Wie auch immer: Danke für deine wertvolle Antwort und deine Bemühungen. – wolfrevo