Kodi Livestream ZOOM

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
JaLa112
User
Beiträge: 1
Registriert: Montag 27. Juni 2016, 14:16

Hallo,

ich verwende ein Kodi-Addon, mit welchem ich einen beliebigen Livestream sehen kann.

Ich möchte in dieses Addon eine Zoom-Funktion integrieren, es sollen also permanent zwei kleine Buttons mit "+" und "-" zu sehen sein, mit den entsprechenden Funktionen im Hintergrund.

Leider beiße ich mir momentan die Zähne aus, ich kriege das einfach nicht hin.

Hat von Euch jemand Ideen?

Dies ist der Code hinter dem Addon:

Code: Alles auswählen

import os
import sys
 
import xbmc
import xbmcaddon
import xbmcgui
 
ACTION_PREVIOUS_MENU = 10
ACTION_BACKSPACE = 110
ACTION_NAV_BACK = 92
ACTION_STOP = 13
 
__addon__ = xbmcaddon.Addon()
 
__id__ = __addon__.getAddonInfo('id')
__icon__  = __addon__.getAddonInfo('icon').decode("utf-8")
__version__ = __addon__.getAddonInfo('version')
 
TEXTURE_FMT = os.path.join(__addon__.getAddonInfo('path'), 'resources', 'media', '{0}.png') # naeher anschauen!
 
def get_string(ident):
    return __addon__.getLocalizedString(ident)
 
def get_setting(ident):
    return __addon__.getSetting(ident)
 
def open_settings():
    __addon__.openSettings()
 
def error_dialog(msg):
    xbmcgui.Dialog().ok(get_string(32000), msg, " ", get_string(32101))
    open_settings()
    sys.exit(1)
 
def log(message, level=xbmc.LOGNOTICE):
    xbmc.log("{0} v{1}: {2}".format(__id__, __version__, message), level=level)
 
 
class StopResumePlayer(xbmc.Player):
    def maybe_stop_current(self):
        if self.isPlaying():
            self.seek_time = self.getTime()
            self.previous_file = self.getPlayingFile()
            self.stop()
        else:
            self.previous_file = None
 
    def maybe_resume_previous(self):
        if self.previous_file is not None:
            self.play(self.previous_file)
            xbmc.sleep(1000) # wait for file to actually play before we can seek
            self.seekTime(self.seek_time - 2.)
 
 
---------------------------------------------------------------------------------------------------------------------------------------------------
 
class CameraControlDialog(xbmcgui.WindowDialog):
    def __enter__(self):
        return self
    
    def start(self):
        self.playVideo()
    
        focusTexture = TEXTURE_FMT.format('close-focus')
        noFocusTexture = TEXTURE_FMT.format('close')
        self.close_button = xbmcgui.ControlButton(1228, 20, 32, 32, "", focusTexture, noFocusTexture)
        self.addControl(self.close_button)
    
        self.doModal()
 
    def playVideo(self):
        self.player = StopResumePlayer()
        self.player.maybe_stop_current()
        url = __addon__.getSetting('url')
        if not url:
            error_dialog(get_string(32102))
        log(url)
        self.player.play(url)
 
    def onAction(self, action):
        if action in (ACTION_PREVIOUS_MENU, ACTION_BACKSPACE,
                      ACTION_NAV_BACK, ACTION_STOP):
            self.stop()
 
    def onControl(self, control):
        if control == self.close_button:
            self.stop()
 
    def stop(self):
        self.player.stop()
        self.close()
        self.player.maybe_resume_previous()
 
    def __exit__(self, exc_type, exc_value, traceback):
        self.stop()
 
 
 
 
with CameraControlDialog() as camera:
    camera.start()
[codebox=xml file=Unbenannt.xml]<?xml version="1.0" encoding="UTF-8"?>
<addon id="script.ipcam"
name="IP Cam"
version="0.0.3"
provider-name="Leopold">
<requires>
<import addon="xbmc.python" version="2.1.0"/>
</requires>
<extension point="xbmc.python.script" library="default.py"/>
<extension point="xbmc.addon.metadata">
<platform>all</platform>
<summary lang="en">IP camera video feed</summary>
<description lang="en">Show the video feed from an IP camera with media resume.</description>
<license>GNU GENERAL PUBLIC LICENSE. Version 3, 29 June 2007</license>
</extension>
</addon>[/code]
Zuletzt geändert von Anonymous am Montag 27. Juni 2016, 14:27, insgesamt 1-mal geändert.
Grund: Quelltext in Codebox-Tags gesetzt.
harryberlin
User
Beiträge: 227
Registriert: Donnerstag 17. Dezember 2015, 12:17

ich kann dem script nichts entnehmen, dass du überhaupt schon was versucht hast, weitere buttons rein zu bringen.
empty Sig
Antworten