Ich habe hier eine Android Box X98H Pro mit Kodi 18.9.
Nun möchte das Lesezeichenmenü auf eine Taste legen, so daß ich ich während der Videowiedergabe direkt darauf zugreifen kann, ohne erst umständlich das OSD aufzurufen und dann zu scrollen.
Gibt es eine Möglichkeit entsprechende Änderungen in der Box im Kodicode vorzunehmen oder wie könnte ich Änderungen der [definition=10,0][definition='3','0']keymap[/definition][/definition] machen?
Vorlage hierzu der Thread Keyboard shortcut to Bookmarks during video playback?
Danke
Android Box Keymap
-
superfilmer -
3. März 2023 um 14:09 -
Unerledigt
-
-
Habe einen Weg gefunden, in die Box in den Keymaps-Ordner diese Datei einzufügen:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<[definition=10,0][definition='3','0']keymap[/definition][/definition]>
<FullscreenVideo>
<keyboard>
<v>ActivateWindow(videobookmarks)</v>
</keyboard>
</FullscreenVideo>
<VideoBookmarks>
<keyboard>
<v>Back</v>
</keyboard>
</VideoBookmarks>
</[definition=10,0][definition='3','0']keymap[/definition][/definition]>Funktioniert auch wunderbar.
Ich möchte aber zur Bedienung der Box eine normale, die zur Box gelieferte, Fernbedienung benutzen.
Diese hat aber keine Buchstaben- sondern nur Zahlentasten. Kann ich den Buchstaben v irgendeiner Zahl zuordnen? Das ändern in obiger Datei, v in 8 z.B. funktioniert nicht. -
-
Es gibt das Kodi addon [definition=10,0][definition='3','0']keymap[/definition][/definition] editor, das du ausprobieren könntest.
-
Habe ich bereits ausprobiert. Das Add-on bietet viele Möglichkeiten, nur leider keine für mein Problem.
-
-
Ich bin gerade nicht zu Hause, daher nur mal grob, wie ich vorgehen würde
- Taste auf der FB aussuchen, die durch keine andere Funktion belegt ist
- das Kodi debug [definition='1','0']log[/definition] einschalten
- Kodi neu starten
- oben ausgesuchte Taste der FB drücken
- nebenher ins [definition='1','1']debuglog[/definition] schauen, ob, und wenn ja, wie Kodi die Taste interpretiert
- wenn Kodi die Taste "versteht" (im Log also was auftaucht), dann eine entsprechende "remote.xml" im "Keymaps" Ordner anlegen, die entsprechende Ein Beispiel einer solchen Datei findet man hier: https://github.com/xbmc/xbmc/blob…maps/remote.xml
- In dieser Datei weißt man der gedrückten Taste einfach die gleiche Funktion zu, wie du es auch bei deiner Tastatur gemacht hast. Nur mit dem Unterschied, dass in der remote.xml remote anstelle von keyboard steht
-
Danke für die Informationen.
Nicht so ganz einfach mit der Box.
Habe in Kodi [definition=12,8][definition=12,9]logging[/definition][/definition] aktiviert.
Kodi neu gestartet.
Habe dann auf der Fernbedienung die Taste 0 gedrückt.
[definition=12,8][definition=12,9]logging[/definition][/definition] ausgeschaltet.
In dem System der Box finde ich nur eine im Ordner temp eine [definition=9,2][definition=9,3]Kodi.[definition='1','0']log[/definition][/definition][/definition], diese muss ich aber erst aus der Box rauskopieren, da kein direkter Lesezugriff möglich ist (gesperrt).
Nachstehend die Datei. Scheinbar wird die Taste erkannt2023-03-04 18:39:48.515 T:5169 [definition=12,0][definition=12,4][definition='1','3']Debug[/definition][/definition][/definition]: HandleKey: long-zero (0x100f030) pressed, action is Number0
Habe das auch testweise mit Taste 5 gemacht, um zu sehen, dass ich richtig bin, 5 wird ebenso angezeigt.
Nun lege ich eine Datei remote.xml.
Da ich das mit der Beispieldatei noch nicht verstanden habe, was schreibe ich nun hierhin? -
-
An dem Log Auszug sieht man, dass der "Handle Key" long-zero ist wenn du die Taste "0" drückst. Kodi identifiziert diese Taste also intern als "long-zero" und hat die "Action" als "Number0" gesetzt
Ich würde es jetzt so machen
Erstelle eine Datei mit Namen "remote.xml" und füge folgenden Inhalt ein:
XML<?xml version="1.0" encoding="UTF-8"?> <[definition='3','0']keymap[/definition]> <global> <remote> <long-zero>dein-befehl-hier</long-zero> </remote> </global> </[definition='3','0']keymap[/definition]>
Dann kopierst du die Datei an die gleiche Stelle wie du es bei deiner Datei oben schon gemacht hast. Dann Kodi neu starten und beten
Wisse aber, dass dann die Taste 0 "global" geändert wurde. Sie wird also immer und überall diese neu gesetzte Funktion haben. Du kannst es auch nur für ein gewisses "Fenster" setzen. Daher der Link zum Beispiel. Da findest du was bzgl "FullScreenVideo" oder ähnliches. Dann wäre die Funktion nur gültig wenn du ein Video um Full Screen sehen würdest. Du musst dann nur das "global" gegen das entsprechende Fenster ersetzen.
-
Da ich ziemlich unbeleckt bin was Programmierung angeht frage ich nochmals nach.
Also ich habe hier zwei Dateienbookmarks.xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<[definition=10,0][definition='3','0']keymap[/definition][/definition]>
<FullscreenVideo>
<keyboard>
<v>ActivateWindow(videobookmarks)</v>
</keyboard>
</FullscreenVideo>
<VideoBookmarks>
<keyboard>
<v>Back</v>
</keyboard>
</VideoBookmarks>
</[definition=10,0][definition='3','0']keymap[/definition][/definition]>und remote.xml:
<?xml version="1.0" encoding="UTF-8"?>
<[definition=10,0][definition='3','0']keymap[/definition][/definition]>
<global>
<remote>
<long-zero>0</long-zero>
</remote>
</global>
</[definition=10,0][definition='3','0']keymap[/definition][/definition]>beide im Kodiordner keymaps.
In der remote.xml habe nun die 0 (Null) zwischen long-zero eingesetzt.
Noch tut sich sich nichts, bzw.. Kodi reagiert nur auf v. Was mache ich falsch bzw. habe ich nicht verstanden, wie ist der Zusammenhang zwischen den Dateien? -
-
So...jetzt bin ich zu Hause und habe auch wieder einen Rechner unter den Fingern
Wie die Dateien heißen ist erstmal egal ;). Kodi scannt den "Keymaps"-Ordner nach *.xml Dateien und verwendet die Keymaps, die darin liegen.
Wenn du genau hin schaust, dann findest du den Unterschied selbst. Ich weise dich aber gern drauf hin.
In deiner "bookmarks.xml" steht der xml-Tag: <keyboard> und auch sein Gegenstück: </keyboard>. Das lässt Kodi wissen, dass es sich dabei um ein Keymapping für eine Tastatur handelt.
In der "remote.xml" steht an gleicher Stelle ein anderer Tag: <remote> und sein Gegenstück: </remote>. Das lässt Kodi wissen, dass es dabei um ein Keymapping für eine Fernbedienung handelt.
Wenn wir jetzt ins Detail deiner "bookmarks.xml" gehen steht an einer Stelle die Zuweisung für die Taste v. Nämlich das hier:
<v>ActivateWindow(videobookmarks)</v>
Diese Zuweisung bzw. das was darin gemacht wird, nennt man grundlegend "Action". Eine Aktion/Handlung, die ausgeführt wird, wenn die Taste "v" gedrückt wird.
Kodi hat also als "Handlekey" das "v" und du weißt diesem Key einen anderen Befehl/Action zu, nämlich: ActivateWindow(videobookmarks)
Gehen wir nun ins Detail deiner remote.xml. Da hast du das mit dem "Handlekey" schon ganz richtig gemacht. In deinem Logauszug oben steht die "Action": Number0
Du hast bei dir drin stehen:
<long-zero>0</long-zero>
Da steht also nur eine "0". Das ist für Kodi keine gültige "Action" für die Nummer "0". Das wäre dann Number0 und die Zuweisung des Befehls/der Action müsste dann folgerichtig so aussehen:
<long-zero>Number0</long-zero>
Das ist aber nicht das, was du im Endeffekt möchtest. Wenn du der Taste "0" deiner Fernbedienung die Funktion für das Öffnen der Bookmarks zuweisen möchtest, dann muss das wie folgt aussehen:
<long-zero>ActivateWindow(videobookmarks)</long-zero>
Solltest du eine andere Taste deiner Fernbedienung dafür verwenden wollen, musst du erst rausfinden, wie der "Handlekey" innerhalb Kodi lautet. Dann kannst du das anpassen.
Die "Number0" musst du nicht extra zuweisen. Das ist schon per Standard so. Nur wenn du die Funktion der Taste "0" deiner Fernbedienung ändern möchtest, dann kannst du diese "Standard"-Funktion mit deiner eigenen überschreiben.
Kodi hat per se schon Standard-Mappings deiner Tasten. Du musst in diese XML-Dateien auch nur die eintragen, die du anpassen möchtest. Kodi geht da in folgender Reihenfolge vor:
- Kodi liest die Standard-Mappings für deine Fernbedienung ein, die die Entwickler vorgesehen haben
- Kodi checkt, ob es eine xml-Datei in deinem Keymap-Ordner gibt
- Wenn es eine xml-Datei gibt, dann liest Kodi die Mappings daraus aus und überschreibt diese mit den von dir gewünschten. Alle anderen Mappings bleiben unangetastet
- Wenn es keine xml-Datei in dem Ordner gibt, dann hat Kodi nichts weiter zu tun und behält die Standard-Mappings bei.
Ich hoffe es ist jetzt ein wenig klarer. Wenn nicht, dann sollten wir vielleicht mal einen Video-Call machen. Dann klären sich vielleicht alle Missverständnisse
-
Wenn ich alles richtig verstanden habe, sollte es so aussehen?
bookmarks.xml :
XML
Alles anzeigen<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <[definition='3','0']keymap[/definition]> <FullscreenVideo> <keyboard> <v>ActivateWindow(videobookmarks)</v> </keyboard> </FullscreenVideo> <VideoBookmarks> <keyboard> <v>Back</v> </keyboard> </VideoBookmarks> </[definition='3','0']keymap[/definition]>
remote.xml:
XML<?xml version="1.0" encoding="UTF-8"?> <[definition='3','0']keymap[/definition]> <global> <remote> <long-zero>ActivateWindow(videobookmarks)</long-zero> </remote> </global> </[definition='3','0']keymap[/definition]>
Läuft damit noch nicht
-
-
Wenn ich mir das Log so anschaue, gibt sich die FB als Keyboard zu erkennen. Es wurden die Taste(n) 0 mal kurz (zero) und etwas länger gedrückt (long-zero).
Code2023-03-04 18:39:50.052 T:5169 DEBUG: Keyboard: scancode: 0x07, sym: 0x0030, unicode: 0x0030, modifier: 0x0 2023-03-04 18:39:50.053 T:5169 DEBUG: HandleKey: zero (0xf030) pressed, action is Number0 2023-03-04 18:39:50.484 T:5169 DEBUG: Keyboard: scancode: 0x07, sym: 0x0030, unicode: 0x0030, modifier: 0x0 2023-03-04 18:39:50.484 T:5169 DEBUG: HandleKey: long-zero (0x100f030) pressed, action is Number0 2023-03-04 18:39:50.529 T:5169 DEBUG: Keyboard: scancode: 0x07, sym: 0x0030, unicode: 0x0030, modifier: 0x0 2023-03-04 18:39:50.529 T:5169 DEBUG: HandleKey: long-zero (0x100f030) pressed, action is Number0
Die bookmarks.xml würde ich so aufbauen, die remote.xml kannst Du löschen:XML
Alles anzeigen<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <[definition='3','0']keymap[/definition]> <FullscreenVideo> <keyboard> <zero>ActivateWindow(videobookmarks)</zero> </keyboard> </FullscreenVideo> <VideoBookmarks> <keyboard> <zero>Back</zero> </keyboard> </VideoBookmarks> </[definition='3','0']keymap[/definition]>
EDIT: Nach Änderungen an den XML-Dateien solltest Du auch Kodi immer neu starten, damit diese Datei(en) auch neu eingelesen werden.
-
Jo....das stimmt natürlich. Ich hatte mir das Log nicht angesehen. In dem Fall hast du absolut Recht @PvD
Obwohl es eine Fernbedienung ist, sieht Kodi diese als "Tastatur" an:
Code2023-03-04 18:39:47.651 T:5169 DEBUG: Keyboard: scancode: 0x07, sym: 0x0030, unicode: 0x0030, modifier: 0x0 2023-03-04 18:39:47.651 T:5169 DEBUG: HandleKey: zero (0xf030) pressed, action is Number0
Der Schlüssel dazu ist das: Keyboard: scancode bei einer Fernbedienung, die auch als solche erkannt wird, steht dort (wenn ich nicht falsch liege): "Remote: scancode"
Zur kleinen Erklärung, was PvD da gemacht hat....
Einmal hat er die Taste "0" den Befehl zugewiesen, der die Bookmarks öffnet, wenn das Fenster "FullScreenVideo" ist. Und dann, wenn das Bookmark-Fenster aktiv ist (<VideoBookmarks>), dann hat er der gleichen Taste die Funktion "Zurück" zugewiesen, was das Fenster verlässt und und wieder zurück zum vorherigen Fenster ("FullScreenVideo"). Und...es wurde "zero" anstelle von "long-zero" verwendet, was den Effekt hat, dass es auch bei kurzen Tastendrücken funktioniert.
Danke für die Korrektur. Das es als Tastatur erkannt wird, hätte ich vorher checken sollen.
-
-
Super, hat geklappt. Habe direkt auch ausprobiert statt zero five einzugeben. Schon reagiert es mit der Taste 5. Gut zu wissen, falls man die Taste 0 für andere Sachen benutzen will.
Vielen Dank für Deine Mühe.
Jetzt habe ich nur noch einen kleinen Wunsch. Bei Aufruf der Lesezeichen erscheint erst ein Menüzeile mit Lesezeichen erstellen und Lesezeichen löschen. Dorthin springt der Cursor als erstes und ich muss runterklicken um auf die Lesezeichen zu kommen. Da ich die Lesezeichen anderweitig erstelle kann dieses Menü weg bzw. sollte der Cursor direkt auf die Lesezeichenzeile springen. Geht das irgendwie? -
Bei Aufruf der Lesezeichen erscheint erst ein Menüzeile mit Lesezeichen erstellen und Lesezeichen löschen. Dorthin springt der Cursor als erstes und ich muss runterklicken um auf die Lesezeichen zu kommen. Da ich die Lesezeichen anderweitig erstelle kann dieses Menü weg bzw. sollte der Cursor direkt auf die Lesezeichenzeile springen. Geht das irgendwie?
Nein. Es wird das Lesezeichen-Fenster aktiviert und dann ist Ende Gelände. Eine Art Makrofunktion - also das Ausführen mehrerer Tastendrücke hintereinander - kennt Kodi nicht. Die einzige Möglichkeit besteht im Ändern des Codes für das Bookmarkfenster im verwendeten Skin selbst. Hier wird i.d.R ein sogenanntes "Defaultcontrol" definiert, auf welchem beim Aufrufen des Fensters fokussiert wird.
Abgesehen davon, dass diese Geschichte fehlerträchtig und nicht ganz trivial ist, musst Du die Änderungen jedesmal nach einem Skin-Update auch wieder einspielen.
-
-
Wenn es nicht geht auch ok, damit kann ich leben.
Wichtig ist aber, dass ich mit der nummerischen Fernbedienung die Funktion Lesezeichen gut bedienen kann. Vielleicht auch für andere interessant, da diese Fernbedienungen für solche Boxen verbreitet sind.
Ich danke euch nochmals.
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!