Machbar ist das ganze durchaus in einem Python Addon... Die Abfrage einer Taste ist allerdings etwas umständlich(er). Hier wäre es einfacher nur das Script bei einem Tastendruck aufzurufen. Also...
<[definition='3','0']keymap[/definition]><global><keyboard><key id="61475">RunScript(C:\Users\User\...\default.py)</key></keyboard></global></[definition='3','0']keymap[/definition]>
Als key id könnte man hier unter Umständen eine Sondertaste (zB Mute) eines Multimedia Keyboards nutzen.
Ich würde hier allerdings nur ein kleines Script verwenden und kein komplettes Addon, da man dann viel zu viel unnützes Zeug drumherum hat. Wenn du da Spaß dran hast, kannst du dir natürlich auch ein installierbares Addon mit Einstellungsmöglichkeiten basteln. Das bleibt natürlich dir überlassen...
Das Script würde ich so schreiben...
import xbmc
import json
class Softmute():
def __init__(self):
resp = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "Application.GetProperties", "params": { "properties": [ "volume"] }, "id": 1}')
dct = json.loads(resp)
if (dct.has_key("result")) and (dct["result"].has_key("volume")):
curVol = dct["result"]["volume"]
muteVol = 20
if curVol > muteVol:
for i in range(curVol - 1, muteVol - 1, -1):
xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "Application.SetVolume", "params": { "volume": %d }, "id": 1}' %(i) )
xbmc.sleep(50)
if curVol == muteVol:
for i in range(curVol + 1, 101):
xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "Application.SetVolume", "params": { "volume": %d }, "id": 1}' %(i) )
xbmc.sleep(50)
s = Softmute()
del s
Alles anzeigen
... und dann wie oben beschrieben über eine Taste aufrufen...