Habs gerade mal ausprobiert und es funktioniert ohne Probleme. Wenn du natürlich noch Eden nutzt, geht der .Art Kram nicht, dann musst du eben MusicPlayer.Property(Fanart_Image) nutzen.
Beiträge von `Black
-
-
Probier mal das, in dem Fall sollte ein Control ausreichen:
PHP<control type="image"> <description>visualisation background</description> <include>Dimensions_Fullscreen</include> <texture fallback="special://skin/backgrounds/Music.jpg" background="true">$INFO[Player.Art(fanart)]</texture> <animation type="Conditional" condition="ControlGroup(9000).HasFocus() | Control.HasFocus(9001) + Skin.HasSetting(animation)"> <effect type="fade" start="100" end="50" time="200" /> </animation> </control>
-
Nein, das gilt nur für Video-Art. Für Musik hat sich meines Wissens nach nichts geändert. Es kann allerdings sein, dass Player.Art(fanart) auch für Musik funktioniert, habe ich allerdings noch nicht getestet.Edit: Gilt doch auch für Musik. Also für Frodo kann Player.Art(fanart) verwendet werden für Musik sowie Player.Art(thumb)/ListItem.Art(thumb) und ListItem.Art(fanart).
-
@phil65
Deine gezeigte Methode ist in etwa ja genau das, was ich auch für meinen Fake-Spin-Control verwende. In dem Fall ist es völlig egal, ob man 1 oder 20000 Vergleiche einbaut, da es dort auch nicht unbedingt auf die maximale Performance ankommt. In einem list control kann das aber wie gesagt Unterschiede beim schnellen Scrollen machen. Es ging an sich nur darum, dass ein substring eine der langsamsten Operationen ist, z.B. ist
IsEmpty(Window.Property(property))
schneller als
substring(Window.Property(property),test)
Das beides nicht das gleiche macht, ist erst mal klar, allerdings gibt es durchaus Situationen, in denen man sicherlich etwas Feinschliff betreiben kann. Ob das viel ausmacht, sei dahin gestellt, je langsamer das System, je stärker kann es deutlich werden. Natürlich sind viele verschiedene, dazu noch sehr große Texturen oder das Fehlen von background="true" schlimmer, das sollte klar sein.
Ich habe das eben auch noch mal bei mir getestet, in der Frodo Alpha kann ich bei meinem View auch keine Unterschiede mehr feststellen, mein System ist allerdings auch nicht gerade langsam. Kann aber auch an diversen Optimierungen von XBMC liegen, so dass die Unterschiede mittlerweile kaum noch ins Gewicht fallen.
-
1. Das macht der Scraper. Wenn kein lokales Fanart vorhanden ist, wird eins online gesucht. Der neue Universal Artist Scraper sucht bspw. bei Fanart.tv und HTBackdrops.com.
2. IsEmpty(MusicPlayer.Property(Fanart_Image)) musst du verwenden, um zu überprüfen, ob kein Fanart vorhanden ist.
-
Das mit dem Scrolling ist in der Tat so, kann jeder ausprobieren. Es muss sich nicht auswirken, kann aber. Kommt immer darauf an... ich hatte bei mir für einen View z.B. ein itemlayout mit mehreren Gruppen unterteilt nach Content (movies, tvshows, seasons, episodes) und mich immer über das ruckelige Scrolling gewundert. Habe es dann aufgeteilt wie beschrieben und siehe da, alles flüssig. Ist auch logisch, da die anderen Layouts komplett ignoriert werden.
Das mit den stringcompares/substrings wirkt sich normalerweise auch nicht so aus, meinte damit auch hauptsächlich die Verwendung in list controls... z.B. würde ich
PHP
Alles anzeigen<itemlayout> [...] <control type="image"> [...] <texture>$INFO[ListItem.Overlay,overlays,list-nf.png</texture> </control> </itemlayout> <focusedlayout> [...] <control type="image"> [...] <texture>$INFO[ListItem.Overlay,overlays,list-fo.png</texture> </control> </focusedlayout>
jederzeitPHP
Alles anzeigen<itemlayout> [...] <control type="image"> [...] <texture>overlays/list-unwatched-nf.png</texture> <visible>StringCompare(ListItem.Overlay,OverlayUnWatched.png)</visible> </control> <control type="image"> [...] <texture>overlays/list-watched-nf.png</texture> <visible>StringCompare(ListItem.Overlay,OverlayWatched.png)</visible> </control> </itemlayout> <focusedlayout> [...] <control type="image"> [...] <texture>overlays/list-unwatched-fo.png</texture> <visible>StringCompare(ListItem.Overlay,OverlayUnWatched.png)</visible> </control> <control type="image"> [...] <texture>overlays/list-watched-fo.png</texture> <visible>StringCompare(ListItem.Overlay,OverlayWatched.png)</visible> </control> </focusedlayout>
vorziehen. Beim Laden eines Windows einmalig einige substrings oder stringcompares auswerten macht nicht viel aus, in list views können sich sehr viele stringcompares/substrings, allgemeine viele Controls mit visible conditions, aber schon negativ auswirken.
-
Hier auch ein Tip von mir. Wer sich darüber wundern sollte, warum ein View trotz eines performanten Systems beim Scrollen ruckelt, sollte überprüfen, wie viele visible conditions im item- sowie focusedlayout vorhanden sind.
PHP<itemlayout condition="Container.Content(movies)"> [...] </itemlayout> <itemlayout condition="Container.Content(episodes)"> [...] </itemlayout>
ist schneller als
PHP<itemlayout condition="Container.Content(movies) | Container.Content(episodes)"> <control type="group"> <visible>Container.Content(movies)</visible> [...] </control> <control type="group"> <visible>Container.Content(episodes)</visible> [...] </control> </itemlayout>
Bei größeren Layoutunterschieden sollte man also immer auf die erste Variante setzen. Wenn es nur darum geht, dass sich vielleicht 1-2 Labels unterscheiden, dann kann man das z.B. mit einer Variable lösen.
Des Weiteren sollten substring Vergleiche so gut es geht vermieden werden, diese sind langsam... ich greife darauf nur zurück, wenn es nicht anders geht, z.B. bei Mediaflags.
-
Ich mache das wie gesagt immer so und es funktioniert:
PHP
Alles anzeigen<control type="group"> <visible>Control.IsVisible(51)</visible> <animation effect="fade" start="0" end="100" time="600">Visible</animation> <animation effect="fade" start="100" end="0" time="600">Hidden</animation> <control type="grouplist"> <visible>Container.Content(movies)</visible> [...] </control> <control type="wraplist" id="51"> <visible>Container.Content(movies) | Container.Content(tvshows)</visible> [...] </control> </control>
-
Was klappt denn bei hidden nicht? Du musst eventuell die visible Animation aller Views mit einem delay versehen, damit es nicht lagt und möglicherweise kaum zu sehen ist, weil beides gleichzeitig passiert. Auch ändern sich beim Container-Wechsel sofort sämtliche InfoLabels, d.h. Thumbnails und sonstige Label können ggf. sofort leer sein.
-
Du brauchst eine group, die nur dann sichtbar ist, wenn die jeweilige Ansicht ausgewählt ist.
PHP
Alles anzeigen<control type="group"> <posx>80</posx> <posy>60</posy> <visible>Control.IsVisible(51)</visible> <animation effect="fade" time="600" >WindowOpen</animation> <animation effect="fade" time="600" >Visible</animation> <animation effect="slide" start="0" end="-1980" tween="cubic" easing="inout" time="1000" >WindowClose</animation> <animation effect="slide" start="0" end="-1980" tween="cubic" easing="inout" time="1000" >Hidden</animation> <control type="wraplist" id="51"> <posx>0</posx> <posy>0</posy> [...] </control> </control>
-
Eine Möglichkeit wäre z.B. jedes mal per Script eine Property für ca. 100ms zu setzen... leider ist das mit AlarmClock nicht möglich, da geht minimal 1 Sekunden, was natürlich viel zu lang wäre.
Hier das Skript
PHP
Alles anzeigenimport xbmc import xbmcgui # grab the home window HOME = xbmcgui.Window(10000) HOME.setProperty(sys.argv[1],'1') xbmc.sleep(100) HOME.clearProperty(sys.argv[1])
Du musst dann immer beim onclick das Skript aufrufen:
PHP<onclick>Container.SetViewMode(50)</onclick> <onclick>RunScript(special://skin/scripts/script.py,BackgroundHidden)</onclick>
Control sieht dann so aus:
PHP<control type="image"> <visible>!IsEmpty(Window(Home).Property(BackgroundHidden))</visible> <width>1920</width> <height>1080</height> <texture background="true">background.png</texture> <animation time="100" effect="fade" start="0" end="100" tween="cubic" easing="in">Visible</animation> <animation time="500" effect="fade" start="100" end="0" tween="cubic" easing="in">Hidden</animation> </control>
Um die Animation auch bei WindowOpen/Close zu haben, musst du das Skript mit onload/onunload ebenfalls einmal aufrufen.
-
Ich hatte das WatchList Update schon vor ein paar Tagen getestet, heute das Skin Widgets Add-on und es funktioniert bisher völlig problemlos. Die Properties haben sich z.T. leicht geändert und man muss es nicht mehr selber im Skin starten. Die Geschwindigkeitsprobleme sind mit Frodo nun gelöst, auch bei MySQL Datenbanken ist es nun schnell genug und dauert selbst wenn man sehr viele Filme/Serien/Songs hat maximal ein paar Sekunden (vorher konnte es mehrere Minuten dauern).
-
Laut [definition='1','0']log[/definition] ist das Datum bei irgendeiner Episode falsch. Aber wie gesagt, du kannst mal meinen Fix ausprobieren, damit sollte das Skript keinen Fehler mehr schmeissen.
-
Einmal bitte http://cl.ly/code/2l3E1K1l1x0P ausprobieren, einfach die default.py ersetzen. Wenn es damit funktioniert, kann ich das aktualisieren lassen... da ich glaub ich noch keine Rechte auf github habe, kann ich das nicht selber machen. Das Problem liegt aber eigentlich bei etwas anderem, denn zuletzt gespielt kann nicht 1601-01-01 sein, das ist 1. ein falsches Datum und 2. auch noch falsches Format, da die Uhrzeit fehlt. Da läuft eventuell irgendwas beim Exportieren/Importieren schief.. ob das ein genereller Fehler ist oder in bestimmten Fällen bei bestimmten Filmen/Episoden auftritt, kann ich nicht sagen.
-
Wenn du in der neu eingefügten Ansicht das Menü zum Ansicht wechseln etc. nicht mehr öffnen kannst, dann ist schlicht und einfach die ID für das Menü bei onup, ondown, onleft oder onright falsch. Sonst wüsste ich jetzt auf die schnelle auch nicht, was da das Problem sein könnte... irgendwo was vergessen, gleiche IDs, kann mehrere Ursachen haben.
-
Geht nicht. Man kann einen spincontrol allerdings auf die ein oder andere Weise faken mit normalen Buttons.
-
Und es sollte mit ListItem.Progress gehen, zumindest gibt es das InfoLabel in den aktuellen Frodo Nightlies.
-
$INFO[VideoPlayer.Title]$INFO[VideoPlayer.Year, (,)]
Dann werden die Klammern nur angezeigt, wenn das Jahr auch verfügbar ist. Die IsEmpty condition müsste natürlich !IsEmpty(VideoPlayer.Year) heißen, aber ist wie gesagt nicht notwendig, mein Vorschlag ist einfacher und spart ein extra label.
-
Er hat doch auch S0xE0x geschrieben, das ist schon vollkommen richtig. "S01E01 Pilot.mkv" heißt dann z.B. die erste Folge der 1. Staffel... der Episodentitel ist vollkommen egal, wichtig ist die richtige Staffel- und Episodennummerierung.
-
Also ich kann aus den Logs auch nicht erkennen, was genau das Problem sein könnte. Bin auch nicht direkt an der XBMC Entwicklung beteiligt, habe nur an ein paar Scripts mitgewirkt (TV Show Next Aired, Watchlist & Favourites Script).
Ich würde es mal (rein zum Test) mit der Frodo Alpha 3 probieren, Confluence Skin, alles default lassen und eine lokale Quelle mit ein paar Filmen (nur die Filmdateien ohne thumbnail, fanart, nfo etc.) hinzufügen. Wenn der Fehler dort auch noch besteht, Thread im XBMC Forum erstellen... das große Problem ist, dass der Fehler außer bei dir nicht reproduzierbar ist, d.h. es wird nicht einfach sein, die Ursache zu finden. Kann durch eine bestimmte Hardware-/Systemkonfiguration, bestimmte Treiber oder was auch immer auftreten, ist aus dem Log nicht zu entnehmen.