e-schrott Posted July 23, 2005 Share Posted July 23, 2005 Hallo, das COM Interface ist echt super, endlich kann ich bei meinem XC-Cube auf dem Display signalisieren, ob eine Aufnahme aktiv ist, welches Programm wiedergegeben wird ... Es gibt nur ein Problem: Wird eine Aufnahme manuell abgebrochen, z.B. durch Deaktivierung des Timers, so wird die stopre.vbs nicht aufgerufen. Noch eine weitere Frage: Ist es irgendwie möglich bei Medienwiedergabe (DVD oder CD) bzw. DVD oder CD Wiedergabe den aktuellen Titel zu ermitteln? Gruß Quote Link to comment
Guest Lars_MQ Posted July 24, 2005 Share Posted July 24, 2005 Wird eine Aufnahme manuell abgebrochen, z.B. durch Deaktivierung des Timers, so wird die stopre.vbs nicht aufgerufen. Das ist richtig und beabsichtigt. Ansonsten würde bei jedem deaktivieren eines timers die aktion aufgerufen, selbst wenn der Timer nicht aktiv war, sondern nur abgeschaltet wird, weil man ihn im moment nicht braucht. Worüber ich mal nachdenken werde, ob ein manuelles stoppen die aktion auslösen sollte, aber da muss ich erstmal schauen, was da alles dranhängt. Ist es irgendwie möglich bei Medienwiedergabe (DVD oder CD) bzw. DVD oder CD Wiedergabe den aktuellen Titel zu ermitteln? Nur bei Audio-CD bei DVD gibt es sowas nicht. aktuelle Titelnummer:= DVBViewer.Playlistmanager.CurrentTitle +1; Sofern ein titelname vorhanden: Titelname:=DVBViewer.propGetValue('#Media.title'); Titelfile:=DVBViewer.propGetValue('#Media.file'); Bei DVD wiedergabe steht im '#Media.title' der name der DVD (sofern vorhanden). Das sind die Daten, die auch im Mediaplaywindow angezeigt werden. Hmm, je mehr ich drüber nachdenke, desto mehr lücken seh ich da noch. - Warum hab ich die Titelnummer nicht auch mit reingepackt. - Und die playtime - und das Kapitel bei DVD Ok, ich seh schon, da muss ich einiges nachbessern Manchmal ist man betriebsblind lars Quote Link to comment
e-schrott Posted July 24, 2005 Author Share Posted July 24, 2005 Hallo Lars, danke für die kompetente Auskunft. vielleicht ist es ja besser ein vb-script paralell zum Viewer laufen zu lassen, welches mit dem DVBViewer kommuniziert und das Cube-Display ansteuert. Hierzu bräuchte ich aber etwas Unterstützung: - kann man dieses Script automatisch mit dem Viewer starten (also auch wenn der viewer nach dem Standby automatisch durch den taskscheduler gestartet wird)? - wie kann diese Script ermitteln dass der Viewer geschlossen wird (vbs Syntax) - wie ermitteln man ob gerade eine Aufnahme läuft (vbs Syntax) - wie ermittet man ob gerade TV wiedergeben wird oder eine Medienwiedergabe aktiv ist (vbs Syntax) Gruß Quote Link to comment
Guest Lars_MQ Posted July 24, 2005 Share Posted July 24, 2005 OK ich geh davon aus das du vbs grundsätzlich kennst und aus den scripten von admi-ral weisst, wie Du dir das DVBViewer object angelst - Feststellen ob der DVBViewer noch läuft. Schwierige sache, flappsig gesagt, sobald du eine fehlermeldung bekomst beim zugriff auf das object ist er aus. Eleganter ist die Windows-API methode i = FindWindow(null, 'DVBViewer') wenn die <> 0 ist gibt es den viewer noch. Ob und wie das mit vbs geht, keine ahnung. - kann man dieses Script automatisch mit dem Viewer starten Ja, dafür würde ich das script per script starten. Nimm die windowload.vbs und prüfe auf WindowID=0, das ist das Homewindow, wenn das geladen wird, ist der viewer gestartet und dein script kann gestartet werden. - wie ermitteln man ob gerade eine Aufnahme läuft (vbs Syntax) if DVBViewer.TimerManager.Recording = True then 'er nimmt auf end if - wie ermittet man ob gerade TV wiedergeben wird oder eine Medienwiedergabe aktiv ist (vbs Syntax) if DVBViewer.CurrentChannelNr>-1 then 'TV-Wiedergabe else ' Mediawiedergabe end if Achtung: Recording und Mediawiedergabe schliessen sich nicht aus Du wirst den Viewer ja sicherlich pollen (abfragen in einem bestimmten interval). Wähle den interval nicht zu klein, um deine systemlast niedrig zu halten (alle 2 sekunden oder eventuell alle 5 sekunden) da musst du etwas probieren. Quote Link to comment
e-schrott Posted July 26, 2005 Author Share Posted July 26, 2005 (edited) Hallo lars, vielen Dank für deine Hilfe. Ich habe jetzt ein script geschrieben, welches parallel zum Viewer läuft. Dies hat den Vorteil, dass ich nicht auf das vb_scripting des Viewers angewiesen bin. Folgende Funktionen konnte ich realisieren: - Laufschriftausgabe des aktuellen Senders bzw. Media-Titels - Signalisierung einer Aufnahme durch ein rotes Symbol - Start des DVB-Viewers nach Start des vb-Scripts - Start des DVB-Viewers nach Standby des PCs (ist leider aktuell nötig, da bei der 3.12er Version bei laufendem TaskScheduler die "bestägigen beim Beenden-Nachfrage" fäschlicherweise auftaucht) Folgendes wäre noch nett: Beim Abspielen einer CD den Titel des aktuellen Tracks über Internet ermitteln und diesen Ausgeben (keine Ahnung wie ob das machbar ist). Gruß Falls es jemanden interessieren sollte habe ich das Script mit angehängt. dvbviewer_script.zip Edited July 26, 2005 by e-schrott Quote Link to comment
Guest Lars_MQ Posted July 26, 2005 Share Posted July 26, 2005 Beim Abspielen einer CD den Titel des aktuellen Tracks über Internet ermitteln und diesen Ausgeben (keine Ahnung wie ob das machbar ist). Das kommt noch, Du kannst es jetzt schon mit dem freedbInterface selber machen. Für die näöchste version will ich die freedb abfrage auch bei autoplay einbinden, da muss ich nur sehen, das ich das ganze voneinander entkopple, da man sonst zu lange warten muss, bis die CD startet... Auch weiss ich noch nciht wie man es lösen soll, wenn für eine CD mehrere einträge da sind. Eine abfrage wäre schon störend (wenn man den TV nicht an hat). Quote Link to comment
yaRincewind Posted July 26, 2005 Share Posted July 26, 2005 Bei mehreren Einträgen: Alle CD-Namen anzeigen lassen den ersten als Default setzen eine User-definierte Zeit warten, in der man einen anderen aussuchen kann nach Ablauf der Wartezeit Default spielen oder eben mit der Userwahl loslegen So kann man sichs aussuchen wie sich der Viewer verhalten soll Quote Link to comment
Guest Lars_MQ Posted July 26, 2005 Share Posted July 26, 2005 eine User-definierte Zeit warten, Oh man noch mehr optionen. Quote Link to comment
yaRincewind Posted July 26, 2005 Share Posted July 26, 2005 Na ja, die eine Option mehr oder weniger macht das Kraut nicht fett [ironie] Vielleicht wäre dann langsam eine Suchfunktion im Viewer gut, womit man suchen kann wo sich die Einstellung die man grade braucht versteckt [/ironie] Quote Link to comment
Hartwig Posted July 26, 2005 Share Posted July 26, 2005 ist leider aktuell nötig, da bei der 3.12er Version bei laufendem TaskScheduler die "bestägigen beim Beenden-Nachfrage" fäschlicherweise auftauchtDafür gibts im Servicecenter eine Betaversion vom Taskscheduler. Mit dem sollte das Problem beseitigt sein. Edit: Ach ja, du warst ja der, bei dem es nicht klappte... Quote Link to comment
e-schrott Posted July 26, 2005 Author Share Posted July 26, 2005 Hallo Lars, noch ein kleines Problem, ich versuche gerade über FreeDB den aktuellen CD-Titel zu ermitteln. Es funktioniert in so weit, ich bekomme z.B. den Albumtitel mit Album = DVBViewer.Utils.FreeDB.ReturnDiscInfo.DiscTitle bei folgender Anweisung kommt jedoch die Fehlermeldung "objekt erforderlich" Titel = DVBViewer.Utils.FreeDB.ReturnDiscInfo.Track(0).TrackTitle mache ich irgend was falsch oder stimmt vielleicht die Doku nicht. Gruß und Dank im Vorraus Ausschnitt aus dem code: if DVBViewer.Playlistmanager.CurrentPlaylist = 2 then ' Bei Audio Wiedergabe TitelNr = DVBViewer.Playlistmanager.CurrentTitle +1 DVBViewer.Utils.FreeDB.ReadCDData("d:") if DVBViewer.Utils.FreeDB.DoQuery and (DVBViewer.Utils.FreeDB.MatchCount>0) then if DVBViewer.Utils.FreeDB.DoRead(0) then Titel = DVBViewer.Utils.FreeDB.ReturnDiscInfo.Track(TrackNr).TrackTitle Quote Link to comment
Guest Lars_MQ Posted July 26, 2005 Share Posted July 26, 2005 Versuchs mal mit Titel = DVBViewer.Utils.FreeDB.ReturnDiscInfo.Track(TitelNr).TrackTitle woher bekommst du die TrackNr? oder sollte das TitelNr sein? Ich werd mir das morgen mal genauer anschauen. Für heute ist erstmal schicht im schacht Quote Link to comment
e-schrott Posted July 26, 2005 Author Share Posted July 26, 2005 Versuchs mal mitTitel = DVBViewer.Utils.FreeDB.ReturnDiscInfo.Track(TitelNr).TrackTitle woher bekommst du die TrackNr? oder sollte das TitelNr sein? Ich werd mir das morgen mal genauer anschauen. Für heute ist erstmal schicht im schacht <{POST_SNAPBACK}> z.B. TitelNr = DVBViewer.Playlistmanager.CurrentTitle +1 Funktionier aber auch mit DVBViewer.Utils.FreeDB.ReturnDiscInfo.Track(1).TrackTitle nicht Quote Link to comment
Guest Lars_MQ Posted July 27, 2005 Share Posted July 27, 2005 Es scheint ein vbscript problem zu sein. ich habs mit vba mal gegengetestet, läuft wunderbar. VBscript scheint mit den datentypen nicht zurecht zu kommen , da muss ich erstmal sehen was da genau los ist. lars Quote Link to comment
Frosch Posted October 14, 2005 Share Posted October 14, 2005 Falls es jemanden interessieren sollte habe ich das Script mit angehängt. <{POST_SNAPBACK}> Ich habe es zwar schon vor Ewigkeiten über Girder hinbekommen, die XCube-Fernbedienung über das Serial-Plugin zu nutzen, nur fehlt mir jetzt der Weg "zurück" (also das Display anzusteuern). Kannst Du mal erklären, was man alles benötigt, um Dein Skript ans funktionieren zu bekommen? Quote Link to comment
e-schrott Posted October 14, 2005 Author Share Posted October 14, 2005 Falls es jemanden interessieren sollte habe ich das Script mit angehängt. <{POST_SNAPBACK}> Ich habe es zwar schon vor Ewigkeiten über Girder hinbekommen, die XCube-Fernbedienung über das Serial-Plugin zu nutzen, nur fehlt mir jetzt der Weg "zurück" (also das Display anzusteuern). Kannst Du mal erklären, was man alles benötigt, um Dein Skript ans funktionieren zu bekommen? <{POST_SNAPBACK}> Hallo Frosch, ich schau mal, dass ich dir am Wochenende was zusammenstelle. Soviel vorab: Das Girder Plugin, darfst du dann auf jeden Fall nicht benutzen, da dann die com2 bereits besetzt ist. Ich nutze die skystar Fernbedienungskommandos in Girder mit winlirc plugin (über eine lernbare Fernbedienung), lediglich die Power-Funktion der CUBE-Fenbedienung habe ich eingelernt. Bei den Energieoptionen in der Systemsteuerung muß du bei der Aktion "Drücken des Netzschalters am Computer" die Option "nichts unternehmen" wählen, damit du definiert über VB-Sript herunterfahren kannst. Das VB-Script empfängt dann die Kommandos der Fronttasten wie Ausschalten ... und und ruft die entsprechenden DVBViewer COM-Routinen auf. Was natürlich voraussetzt dass der DVBViewer läuft damit du über Fernbedienung bzw. Fronttaste ausschalten kannst. Dann brauchst du noch das NETCommOCX Tool, welches im Net als Freeware verfügbar ist (ich schau mal nach dem Link) Mein akutelle vb-script werde ich auch anhängen (mit Ausgabe von Sendername, Musiktitel, RDS-Info ...) Gruß Quote Link to comment
Frosch Posted October 14, 2005 Share Posted October 14, 2005 Das Girder Plugin, darfst du dann auf jeden Fall nicht benutzen, da dann die com2 bereits besetzt ist. Hmm, das ist aber genau das, was ich tun wollte. Ich nutze die skystar Fernbedienungskommandos in Girder mit winlirc plugin (über eine lernbare Fernbedienung), lediglich die Power-Funktion der CUBE-Fenbedienung habe ich eingelernt. Du benutzt also nicht die Original-XCube Fernbedienung? Was natürlich voraussetzt dass der DVBViewer läuft damit du über Fernbedienung bzw. Fronttaste ausschalten kannst. Und was passiert, wenn der DVBViewer nicht läuft? Wie bekommst Du den Rechner dann in den Ruhemodus? Quote Link to comment
e-schrott Posted October 15, 2005 Author Share Posted October 15, 2005 Ich nutze die skystar Fernbedienungskommandos in Girder mit winlirc plugin (über eine lernbare Fernbedienung), lediglich die Power-Funktion der CUBE-Fenbedienung habe ich eingelernt. Du benutzt also nicht die Original-XCube Fernbedienung? Ich benutze nur das Power Kommando (eingelernt bei der oneforall) zum aus und einschalten. Was natürlich voraussetzt dass der DVBViewer läuft damit du über Fernbedienung bzw. Fronttaste ausschalten kannst. Und was passiert, wenn der DVBViewer nicht läuft? Wie bekommst Du den Rechner dann in den Ruhemodus? <{POST_SNAPBACK}> Der DVBViewer läuft bei mir dauernd, da der Cube bei mir als HTPC im Wohnzimmer steht. Falls ich doch mal was anderes damit mache starte ich anschließend den Viewer mit der FB über Girder und schicke dann den PC über die FB in den Ruhezustand. Das Runterfahren in den Ruhezustand funktioniert natürlich auch über die Taskleiste. Hier der Link zum notwendigen NetComOCX ActiveX Control: NetCommOCX ActiveX Control DVB_SCRIPT.zip Quote Link to comment
Frosch Posted October 15, 2005 Share Posted October 15, 2005 Der DVBViewer läuft bei mir dauernd, da der Cube bei mir als HTPC im Wohnzimmer steht. Falls ich doch mal was anderes damit mache starte ich anschließend den Viewer mit der FB über Girder und schicke dann den PC über die FB in den Ruhezustand. Das Runterfahren in den Ruhezustand funktioniert natürlich auch über die Taskleiste. Dann benutzt Du aber zum Herunterfahren eine andere Taste als die angelernte Funktion zum Ein/Ausschalten des Cubes, oder? Benutzt Du einen anderen (zusätzlichen) IR-Empfänger, als den eingebauten? Hier der Link zum notwendigen NetComOCX ActiveX Control:NetCommOCX ActiveX Control <{POST_SNAPBACK}> Danke (auch für Dein Script), ich werd´s mir mal anschauen ... Quote Link to comment
e-schrott Posted October 15, 2005 Author Share Posted October 15, 2005 Der DVBViewer läuft bei mir dauernd, da der Cube bei mir als HTPC im Wohnzimmer steht. Falls ich doch mal was anderes damit mache starte ich anschließend den Viewer mit der FB über Girder und schicke dann den PC über die FB in den Ruhezustand. Das Runterfahren in den Ruhezustand funktioniert natürlich auch über die Taskleiste. Dann benutzt Du aber zum Herunterfahren eine andere Taste als die angelernte Funktion zum Ein/Ausschalten des Cubes, oder? Benutzt Du einen anderen (zusätzlichen) IR-Empfänger, als den eingebauten? Hier der Link zum notwendigen NetComOCX ActiveX Control:NetCommOCX ActiveX Control <{POST_SNAPBACK}> Danke (auch für Dein Script), ich werd´s mir mal anschauen ... <{POST_SNAPBACK}> Ich benutze den Technisat IR-Empfänger (winlirc) Zum Ein- bzw. Ausschalten benutze ich auch die CUBE Power-Taste (es wird das gleiche Kommando über COM2 gesendet wie bei der Fernbedienungstaste). Zum Ein- Quote Link to comment
Frosch Posted October 16, 2005 Share Posted October 16, 2005 (edited) Ich benutze den Technisat IR-Empfänger (winlirc)Zum Ein- bzw. Ausschalten benutze ich auch die CUBE Power-Taste (es wird das gleiche Kommando über COM2 gesendet wie bei der Fernbedienungstaste). <{POST_SNAPBACK}> Hmm, den habe ich leider nicht mehr. Ich werde dann mal sehen, ob ich das Ganze über den Umweg mit dem LUA-Scrpting im Girder hinbekomme. Irgendwo hatte ich da mal eine Lösung für den Cube gesehen, jedoch hatte ich gehofft, das SerialPlugin des Girder "von außen" ansteuern zu können. Aber Dein Skript ist ja ganz schön gewachsen. Alle Achtung! Edited October 16, 2005 by Frosch Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.