Hallo.
Habe heute spaßeshalber mal versucht ein Skin.String auf eine Taste zu binden. Ging nach hinten los.
Kann man das irgendwie anders realisieren?
Ach da fällt mir ein, es gibt ja ein Remote Addon was ja auch auf die Tasten Einfluß nimmt. Da muss ich mich mal durchstöbern.
bg
Skin.String und keymap.xml
-
blauesgruen -
13. Mai 2014 um 18:10 -
Erledigt
-
-
Ich hab zwar keinen Plan was du da gerade versuchst, aber hast du dir mal die builtin-function Skin.SetString(string[,value])
ZitatPops up a keyboard dialog and allows the user to input a string which
can be used in a label control elsewhere in the skin via the info tag
Skin.String(string). If the value parameter is specified, then the
keyboard dialog does not pop up, and the string is set directly.angeschaut?
-
-
vielleicht solte ich es erläutern.
ich habe vor im skin eine playlist angeben zu können. das geht natürlich alles über skin. setfile und wird per skin.string abgerufen.
nun ist es bei mir zu hause so, dass ich auf die tasten 0-9 auf der fb radiosender gelegt habe indem ich per [definition='3','0']keymap[/definition] und <one>PlayMedia(spezial://playlists/music/radio.m3u,playoffset=01)</one> (oder so ähnlich) den 1. bis 10. eintrag abspielen lasse. funktioniert auch sehr gut.
jetzt dachte ich mir, wenn ich die playlist mal wechseln möchte, dann wäre es dich super, wenn man das direkt in xbmc einfach angibt und dann in der [definition='3','0']keymap[/definition] per PlayMedia($INFO(Skin.String(playlist),playoffset=01) abruft.
ich hoffe das ist verständlich erklärt.
bg -
Hallo,
Ginge das vielleicht mit:
ZitatXBMC.ActivateWindow(windowid) Go a window specified by ''windowid. See the list of window IDs for the list of valid values. Not all ids will work on all themes.
in der Keymap?
Auf ein Custom Window und da mit onload ein Playmedia mit dem Sting?Grüße
-
-
Zitat
Hallo,
Ginge das vielleicht mit:
in der Keymap?
Auf ein Custom Window und da mit onload ein Playmedia mit dem Sting?Grüße
wäre eine idee. muss mal gucken wie flüssig das dann läuft.
danke.
bgedit: dann brauch ich ja für jeden playlisteintrag ein window
-
Hallo,
Auch wieder wahr. Aber da sollte ja ein leeres Dialogfenster reichen, wenns denn funktioniert.
Ich würde da allerdings eher gleich ne Liste anlegen und dann halt das Fenster mit einer Taste starten und die Playliste auswählen.
Aber meine Fernbedienung verdient auch den Namen dafür nichtGrüße
-
-
Zitat
Hallo,
Auch wieder wahr. Aber da sollte ja ein leeres Dialogfenster reichen, wenns denn funktioniert.
Ich würde da allerdings eher gleich ne Liste anlegen und dann halt das Fenster mit einer Taste starten und die Playliste auswählen.
Aber meine Fernbedienung verdient auch den Namen dafür nichtGrüße
Mein Ziel ist es ja, dass man beim Musik hören so selten wie möglich den Fernseher braucht. Von daher fällt ne Liste flach, ausserdem hab ich ja ne Liste. Die Playlist! ;).
Mal sehen was mir noch so einfällt.
bg -
Hallo,
Viel mir auch noch ein als ich fertig war .
Nur hab ich gaub immer noch nicht verstanden warum nicht einfach next Track auf eine Taste legst?Grüße
-
-
Hallo,
Viel mir auch noch ein als ich fertig war .
Nur hab ich gaub immer noch nicht verstanden warum nicht einfach next Track auf eine Taste legst?Grüße
das geht ja jetzt schon. wenn man aber schnell zur nummer 4 springen kann ist das für mich bedienkompfort! so kann ich meinen sohn sagen: möchtest du "radio teddy" hören, drückst du auf die 2.
bg -
Hallo,
Jetzt hab ichs auch begriffen .
Falls mir was einfällt sag ich Bescheid. Aber zur Not, wenns denn so funktioniert wären ein paar fast leere Dialoge doch zu verschmerzen.
Grüße
-
-
Hallo,
ZitatVon blauesgruen
das geht ja jetzt schon. wenn man aber schnell zur nummer 4 springen kann ist das für mich bedienkompfort! so kann ich meinen sohn sagen: möchtest du "radio teddy" hören, drückst du auf die 2.Dachte ja nicht wirklich das es geht . Allerding das mit dem Offset kapier ich nicht so ganz (hab zwei einzelne genommen). Und komischerweise geht es auch nur mit einem Reload davor, sonst komme ich einmal zur zweiten aber nicht mehr zurück. Baue ich doch glatt vielleicht auch mal ein .
XML<?xml version="1.0" encoding="UTF-8"?> <window id="49" type="dialog"> <onload>ReloadSkin()</onload> <onload>PlayMedia(special://skin/playlists/musicplaylists/ROCK-ANTENNE-Classic-Perlen.m3u)</onload> <controls> <visible>Player.HasAudio</visible> </controls> </window>
Grüße -
Wenn ich dich jetzt richtig verstanden habe, möchtest du also nur den Pfad zu der aktuellen Playlist ändern (damit du wie anschließend wie gewohnt über 0-9 in dieser neuen Playlist springen kannst)?! Und das ganze am Besten ohne eine größere Eingabe tätigen zu müssen bzw den Bildschirm eingeschaltet zu haben?! Kommt das so in etwa hin?
Ich habe mal ganz kurz ein kleines Script geschrieben, bei dem man in einer beliebig langen Liste von Playlisten durchwechseln kann, die aktuelle Position durch eine Soundausgabe signalisiert wird und der Pfad zur Playlist in einen Skin.String geschrieben wird...
-
-
Wenn ich dich jetzt richtig verstanden habe, möchtest du also nur den Pfad zu der aktuellen Playlist ändern (damit du wie anschließend wie gewohnt über 0-9 in dieser neuen Playlist springen kannst)?! Und das ganze am Besten ohne eine größere Eingabe tätigen zu müssen bzw den Bildschirm eingeschaltet zu haben?! Kommt das so in etwa hin?
Ich habe mal ganz kurz ein kleines Script geschrieben, bei dem man in einer beliebig langen Liste von Playlisten durchwechseln kann, die aktuelle Position durch eine Soundausgabe signalisiert wird und der Pfad zur Playlist in einen Skin.String geschrieben wird...
das ist sehr nett! danke.
wenn ich dich aber richtig verstanden habe, kann ich das auch per skin code realisieren. nicht ganz so schick und ohne den ton.
mir geht es hauptsächlich darum, dass, wenn ich die playlist wechsle, dass ich das dann in der [definition='3','0']keymap[/definition].xml nicht anpassen muss. sondern, dass es dort durch angabe von skin.string automatisch übernommen wird.
das funktioniert mit deinem script auch nicht oder?hier zum verständnis der code.
button in den settings:Code<control type="button" id="1010"> <description>fb playlist for keyboard xml</description> <width>840</width> <align>left</align> <label>Playlist</label> <label2>$INFO[Skin.String(fb_playlist)]</label2> <onclick>Skin.SetFile(fb_playlist,,special://MusicPlaylists/)</onclick> </control>
auszug aus der [definition='3','0']keymap[/definition].xml:Code<one>PlayMedia(special://profile/playlists/music/radio1.m3u,playoffset=01)</one> <two>PlayMedia(special://profile/playlists/music/radio1.m3u,playoffset=02)</two> <three>PlayMedia(special://profile/playlists/music/radio1.m3u,playoffset=03)</three> <four>PlayMedia(special://profile/playlists/music/radio1.m3u,playoffset=04)</four> <five>PlayMedia(special://profile/playlists/music/radio1.m3u,playoffset=05)</five> <six>PlayMedia(special://profile/playlists/music/radio1.m3u,playoffset=06)</six> <seven>PlayMedia(special://profile/playlists/music/radio1.m3u,playoffset=07)</seven> <eight>PlayMedia(special://profile/playlists/music/radio1.m3u,playoffset=08)</eight> <nine>PlayMedia(special://profile/playlists/music/radio1.m3u,playoffset=09)</nine> <zero>PlayMedia(special://profile/playlists/music/radio1.m3u,playoffset=10)</zero>
[infobox]hier sollte das special://profile/playlists/music/radio1.m3u durch $INFO[Skin.String(fb_playlist)] ersetzt werden können.[/infobox]
Dachte ja nicht wirklich das es geht . Allerding das mit dem Offset kapier ich nicht so ganz (hab zwei einzelne genommen). Und komischerweise geht es auch nur mit einem Reload davor, sonst komme ich einmal zur zweiten aber nicht mehr zurück. Baue ich doch glatt vielleicht auch mal ein .zb. playoffset=2 spielt den 2. eintrag aus der playlist ... usw.
wenn ich dazu komme gucke ich mir das mit dem dialog mal genauer an.
bg -
wenn ich dich aber richtig verstanden habe, kann ich das auch per skin code realisieren. nicht ganz so schick und ohne den ton.
mir geht es hauptsächlich darum, dass, wenn ich die playlist wechsle, dass ich das dann in der [definition='3','0']keymap[/definition].xml nicht anpassen muss. sondern, dass es dort durch angabe von skin.string automatisch übernommen wird.
das funktioniert mit deinem script auch nicht oder?
Das kann man mit Sicherheit auch direkt per Skinning bewerkstelligen... Davon habe ich allerdings nicht so die Peilung
Ich hatte das jetzt so gedacht, das du das Script zB auf eine Taste legst, damit die Playlist wählst (kann man dann ja durch mehrere Tastendrücke durchschalten und die aktuelle Position wird durch einen Sound zurückgegeben) und du im Anschluss durch einen Tastendruck den durch das Script gesetzten Skin.String (also den Pfad zur Playlist) so in der Art...
<four>PlayMedia(Skin.String(myPlaylistLabel),playoffset=04)</four>
...aufrufst. Ich weiß jetzt nicht, ob die obere Zeile so richtig ist... Das weißt du mit Sicherheit besser als ich...
Den Sound habe ich nur eingebaut, damit man zB bei ausgeschaltetem Bildschirm direkt weiß, ob man nun Playlist 1,2,xyz gewählt hat... Den kannst du natürlich rausnehmen oder durch einen ansprechenderen Sound ersetzen... War nur so ne Idee...
Gruß
4 -
-
Zitat
<four>PlayMedia(Skin.String(myPlaylistLabel),playoffset=04)</four>
genau da liegt ja das problem. ich kann skin.string nicht in der [definition='3','0']keymap[/definition].xml anwenden.
das durchschalten der playlist per script ist eine gut idee, aber es scheitert dann immer am ausführen
bg -
Ok, alles klar... Jetzt hab ichs dann auch verstanden
Das würde ich dann auch einfach mit einem kleinen Script lösen... Mit der Playlist.py die jeweilige Playlist setzen und mit der call.py in der keyboard.xml die Nummer übergeben...
<four>RunScript(C:\Users\...\call.py, 04)</four>
<five>RunScript(C:\Users\...\call.py, 05)</five> usw...Das schöne bei der Verwendung von Skin.String ist, das die zuletzt gehörte Playlist auch nach einem Neustart erhalten bleibt da es ja in der gs.xml gespeichert wird...
Du musst nur noch die call.txt in call.py ändern und in der Playlist.py die letzte Zeile einkommentieren damit das label gesetzt wird
Ciao
-
-
Zitat
Ok, alles klar... Jetzt hab ichs dann auch verstanden
Das würde ich dann auch einfach mit einem kleinen Script lösen... Mit der Playlist.py die jeweilige Playlist setzen und mit der call.py in der keyboard.xml die Nummer übergeben...
<four>RunScript(C:\Users\...\call.py, 04)</four>
<five>RunScript(C:\Users\...\call.py, 05)</five> usw...Das schöne bei der Verwendung von Skin.String ist, das die zuletzt gehörte Playlist auch nach einem Neustart erhalten bleibt da es ja in der gs.xml gespeichert wird...
Du musst nur noch die call.txt in call.py ändern und in der Playlist.py die letzte Zeile einkommentieren damit das label gesetzt wird
Ciao
cool danke!
guck ich mir morgen mal an.
bg
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!