Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Hilfe bei der Entwicklung eines Plugins zum schnellen Überspringen von Werbung

Fischreiher

Newbie
Registriert
26. Oktober 2013
Beiträge
21
Reaktionspunkte
3
Punkte
23
Beim Topfield gab es ein geniales Plugin zum schnellen Überspringen von Werbung, das nach dem Prinzip der binären Suche funktionierte. Gesprungen wurde mit zwei Tasten vor und zurück, wobei sich der Sprungabstand bei jedem Richtungswechsel halbierte, z.B. bei einer Werbepause von 7:41:

Code:
">"  springt +2:00  zu +2:00
">"  springt +2:00  zu +4:00
">"  springt +2:00  zu +6:00
">"  springt +2:00  zu +8:00
"<"  springt -1:00  zu +7:00
">"  springt +0:30  zu +7:30
">"  springt +0:15  zu +7:45
"<"  springt -0:08  zu +7:37
">"  springt +0:04  zu +7:41

Aufgrund eines Patents auf diesen Algorithmus ( ) würde ich nie auf die Idee kommen, so etwas zu schreiben oder zu veröffentlichen. Wenn aber für den initialen Sprungwert und für die Sprungwerte nach dem Richtungswechseln beliebige Zeiten einstellbar sind, kann ich ja nichts dafür, wenn ein User mit genug krimineller Energie dort 2:00, 1:00, 0:30, 0:15, 0:08 und 0:04 einstellt.

Da ich nicht genug Erfahrung habe, um ein Plugin "von null" aus zu schreiben, wollte ich mich in das MultiQuickButton 'reinhängen, das die Zuordnung von Funktionen zu Tasten elegant verwaltet. In der XML-Datei "mqbfunctions.xml" sind hier diverse Funktionen beschrieben.

edit:

Ich habe es gerade geschafft, hier eine Sprungfunktion (+15s) hinzuzufügen:

plugin.py
Code:
from  Screens.InfoBarGenerics import InfoBarSeek

mqbfunctions.xml
Code:
<mqbfunction>
<name>Jump +15s</name>
<code>from Screens.InfoBar import InfoBar
if InfoBar and InfoBar.instance:
    InfoBar.doSeekRelative(InfoBar.instance, 15 * 90000)</code>
</mqbfunction>

Ich komme erst mal weiter, ohne wirklich zu verstehen, was ich mache...
 
Zuletzt bearbeitet:
AW: Hilfe bei der Entwicklung eines Plugins zum schnellen Überspringen von Werbung

Nachdem ich vorgestern noch keine Ahnung von Python hatte, habe ich es tatsächlich geschafft, den Algorithmus mit Sprüngen und Timeout zu implementieren.

Der Timeout sorgt dafür, dass, nachdem die richtige Stelle gefunden wurde, der nächste Suchvorgang wieder mit dem initialen Sprungwert beginnt.

Jetzt fehlt mir noch die Anzeige der Zeit, um die im aktuellen Suchvorgang gesprungen wurde (Werbung überspringen macht doppelt Spaß, wenn man dabei sieht, wie viel man übersprungen hat.) Diese Zeit würde ich gerne in die obere Infoleiste mit einblenden, in der z.B. beim Timeshift schon der Wert steht, um den der Timeshift gerade versetzt läuft.

Weiß jemand, wie man zur oberen Infoleiste eine zusätzliche Information hinzufügen kann?
Oder kann man über eine randlose Infobox die Zeitangabe einfach drüberkleben?
 
AW: Hilfe bei der Entwicklung eines Plugins zum schnellen Überspringen von Werbung

Hm, ich befürchte, hier wirst Du auf wenig Entwickler treffen.
Ich selber kam bisher mit Python nur sehr wenig in Kontakt. Wenn ich es im Geschäft mal brauchen sollte, werde ich Dir dann eher helfen können. Aber bisher komme ich mit C gut durch :)

Aber ich denke, es geht beides. Man kann die Infoleiste mit etwas belegen, oder ein Fenster aufpoppen lassen. Vielleicht kannst Du in den Python Skripten vom MyMetrix (Mod by BinIckNich) Skin was finden. Da kann man ja variabel die Informationen in der Infoleiste an- oder abschalten. Eventuell kannst Du Dich da inspirieren lassen.

Ansonsten findest Du eben jenen BinIckNich im Gigablue Board oder bei den Jungs von openATV.
 
Danke, ich habe mich inspirieren lassen und einfach meine eigene Infoleiste als Screen definiert und in der eingebetteten Skin die Informationen aus "TimeshiftState" mit meinen Informationen kombiniert.

Meine Sprungfunktionen funktionieren schon ganz gut im Timeshift-Buffer. Ich habe mich dabei in die "InfoBarPlugins.__init__" reingehängt, um die Tasten abzufragen, und benutze zum Springen "InfoBarSeek.doSeekRelative(InfoBar.instance, pts)".

Nun sollen die Sprünge aber auch bei der Wiedergabe einer zuvor aufgezeichneten Sendung funktionieren. Ich befürchte, dass ich im Player mit den InfoBar-Funktionen nicht weiterkomme, da diese nur für Live-TV und Timeshift gelten.

Liege ich da richtig? Und kann mir jemand ein Plugin empfehlen, in dem ich mir entsprechende Funktionen für Tastenabfrage und Sprünge im Wiedergabemodus angucken kann?

Ich habe das Plugin jetzt hier veröffentlicht:
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben