Hallo Borland,
ich hab da mal ein Beispiel für Windows Media player gebastelt.
Schau es dir mal an und dann wird es hoffentlich einigermaßen klar wie es funktioniert.
Außerdem solltest du die readme im Github lesen, dort habe ich versucht die Struktur zu erklären.
var device = 'upnp.0.Jey_Cee_(JEYCEE-LENOVO_:_Windows_Media_Player)'; //hier das upnp Gerät eintragen das gesteuert werden soll var control = 'javascript.0.WMP_lenovo'; //hier das Objekt eintragen wo die Steuerobjekte angelegt werden sollen var oldVol; //createState(name, initialValue, forceCreation, common, native, callback); createState(control + '.Play', false, {type: 'boolean', read: 'true', write: 'true', role: 'button.play'}); createState(control + '.Pause', false, {type: 'boolean', read: 'true', write: 'true', role: 'button.pause'}); createState(control + '.Stop', false, {type: 'boolean', read: 'true', write: 'true', role: 'button.stop'}); createState(control + '.Vol_UP', false, {type: 'boolean', read: 'true', write: 'true', role: 'button.volume_up'}); createState(control + '.Vol_Down', false, {type: 'boolean', read: 'true', write: 'true', role: 'button.volume_down'}); createState(control + '.Mute', false, {type: 'boolean', read: 'true', write: 'true', role: 'button.mute'}); on({id: control + '.Play', val: true }, function(obj){ //Wiedergabe starten setState(device + '.MediaRenderer.AVTransport.Play.InstanceID', 0); setState(device + '.MediaRenderer.AVTransport.Play.Speed', 1); setState(device + '.MediaRenderer.AVTransport.Play', 'send'); }); on({id: control + '.Pause', val: true }, function(obj){ //Wiedergabe pausieren setState(device + '.MediaRenderer.AVTransport.Pause.InstanceID', 0); setState(device + '.MediaRenderer.AVTransport.Pause', 'send'); }); on({id: control + '.Stop', val: true }, function(obj){ //Wiedergabe stoppen setState(device + '.MediaRenderer.AVTransport.Stop.InstanceID', 0); setState(device + '.MediaRenderer.AVTransport.Stop', 'send'); }); on({id: control + '.Vol_UP', val: true }, function(obj){ oldVol = getState(device + '.MediaRenderer.RenderingControl.Volume').val; newVol = parseInt(oldVol) + 5; //der Wert um den die Lautstärke geändert wird, kann beliebig geändert werden //neue Lautstärke senden setState(device + '.MediaRenderer.RenderingControl.SetVolume.Channel', 'Master'); setState(device + '.MediaRenderer.RenderingControl.SetVolume.DesiredVolume', newVol); setState(device + '.MediaRenderer.RenderingControl.SetVolume.InstanceID', 0); setState(device + '.MediaRenderer.RenderingControl.SetVolume', 'send'); }); on({id: control + '.Vol_Down', val: true }, function(obj){ oldVol = getState(device + '.MediaRenderer.RenderingControl.Volume').val; newVol = parseInt(oldVol) - 5; //der Wert um den die Lautstärke geändert wird, kann beliebig geändert werden //neue Lautstärke senden setState(device + '.MediaRenderer.RenderingControl.SetVolume.Channel', 'Master'); setState(device + '.MediaRenderer.RenderingControl.SetVolume.DesiredVolume', newVol); setState(device + '.MediaRenderer.RenderingControl.SetVolume.InstanceID', 0); setState(device + '.MediaRenderer.RenderingControl.SetVolume', 'send'); }); on({id: control + '.Mute', val: true }, function(){ var oldMute = getState(device + '.MediaRenderer.RenderingControl.Mute').val; if(oldMute == 0){ setState(device + '.MediaRenderer.RenderingControl.SetMute.InstanceID', 0); setState(device + '.MediaRenderer.RenderingControl.SetMute.Channel', 'Master'); setState(device + '.MediaRenderer.RenderingControl.SetMute.DesiredMute', 1); setState(device + '.MediaRenderer.RenderingControl.SetMute', 'send'); //oldVol = getState(device + '.MediaRenderer.RenderingControl.Volume').val; }else{ setState(device + '.MediaRenderer.RenderingControl.SetMute.InstanceID', 0); setState(device + '.MediaRenderer.RenderingControl.SetMute.Channel', 'Master'); setState(device + '.MediaRenderer.RenderingControl.SetMute.DesiredMute', 0); setState(device + '.MediaRenderer.RenderingControl.SetMute', 'send'); } }); on({id: control + '.MediaURL' }, function(obj){ setState(device + '.MediaRenderer.AVTransport.SetAVTransportURI.CurrentURI', obj.newState.val); setState(device + '.MediaRenderer.AVTransport.SetAVTransportURI.InstanceID', 0); setState(device + '.MediaRenderer.AVTransport.SetAVTransportURI', 'send'); });
Gesendet von meinem m8 mit Tapatalk