welche session bei self.session.nav.playService()?

  • habe wieder mal ne frage... wenn ich mit nav.playservice(tv_service_ref) nach dem abspielen einer aufnahme wieder einen tv service spielen will, dann scheint es auf die session variable anzukommen, ob das funktioniert.
    habe folgende konstruktion:


    d.h. vom plugin wird ein screen1 aufgerufen, von dem dann ein screen2 und in screen2 soll der tv service gestartet werden.
    das funktioniert aber nicht.
    das self.session.nav.playService funktioniert, wenn ich es in screen1 aufrufe aber nicht in screen2.
    vermute, es liegt an der session variablen... muss ich die session variable aus screen1 als parameter an screen2 uebergeben und dort fuer playService verwenden?
    oder liege ich total daneben?
    danke.

  • hmmm, das dachte ich auch... deswegen wundert es mich, dass das playService in screen2 nicht zu funktionieren scheint. da muss dann wohl was anderes faul sein...

  • also session ist identisch in beiden screens... hab ich gerade mal schnell verifiziert.
    komisch ist auch , dass das playService in screen1 direct nach dem close() von screen2 funktioniert aber nicht direkt vor dem close() in screen 2.

  • vielleicht nochmal eine verstaendnisfrage:
    mit playService(ref1) wird ja die wiedergabe eines services gestartet und mit stopService() beendet.
    ich gehe mal davon aus, dass mehrere wiedergaben parallel laufen koennen (z.b. bei pip, oder tv und aufnahme). wie kann ich dann die wiedergabe auswaehlen, die ich stoppen will? bei stopService kann ich ja keine reference mitgeben.

  • Die einzelnen Dinge (PiP, Records...) laufen ja in einer anderen/eigenen Session.


    In der nav dürfte ja nur der eine (Live-TV) laufen.


    Lt. der Fehlermeldung scheint er ja nicht zu starten, weil der Service schon läuft.
    Hast du vorher mal ein Stop versucht?

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • Die einzelnen Dinge (PiP, Records...) laufen ja in einer anderen/eigenen Session.

    da bin ich mir nicht sicher...
    wenn ein plugin aufgerufen wird, dann bekommt das eine session... und nach meiner beobachtung und nach aussage von @dhwz gibt es im plugin nur eine session.
    und ich meine, ich kann das abspielen einer aufnahme starten, ohne die tvwiedergabe zu stoppen... und wenn ich dann die aufnahmenwiedergabe stoppe, habe ich wieder die tvwiedergabe, ohne dass ich die starten muesste (bin mir aber nicht ganz sicher)
    natuerlich habe ich aufgrund der message stopService eingebaut... aber bisher ohne erfolg...

  • und wenn ich dann die aufnahmenwiedergabe stoppe, habe ich wieder die tvwiedergabe, ohne dass ich die starten muesste (bin mir aber nicht ganz sicher)


    Ja die Beobachtung ist IMHO richtig dieses Verhalten gibt es seit OE2.5 (das ist so gewollt) und stopService muss man nach der Wiedergabe nur noch machen wenn man nicht möchte dass Live-TV fortgesetzt wird.

  • Ja stimmt, die session selbst kann durchaus die gleiche sein.


    Ich meinte eigentlich das, was danach kommt.
    Das unterscheidet dann ja.
    .nav, .pip ...

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • kurzes feedback: es funktioniert jetzt... aber ich weiss nicht warum es vorher nicht funktioniert hat :smiling_face:
    habe bisschen was umgestellt und cleanedup.
    ablauf ist:
    - laufender tv service
    - playService(aufnahme_ref)
    - stopService()
    - playService(tv_service_ref) (anderes tv programm)
    also ausser bei der aufnahme keine weiteren stopServices.
    die msg "ignore request to play already running service(1)" kommt immer noch, aber scheint keine negativen auswirkungen zu haben.

  • Hello.
    And what about trying out the algorithm without using a "session" in your plugin ? :winking_face:
    Using the NavigationInstance.


    For example...


    ...use this:

    Python
    import NavigationInstance
    ref = NavigationInstance.instance.getCurrentlyPlayingServiceReference()


    ...instead of this:

    Python
    ref = session.nav.getCurrentlyPlayingServiceReference()