I thought I should start a new post for this since the last one is from 2013
http://voxcommando.com/forum/index.php?topic=1172.msg9948#msg9948this group has 2 separate commands one for discrete pause and the other for discrete play
this sends a real play, and pause command instead of changing the player speed
(couldn't un-pause with regular "play pause" after paused with changing the player speeds)
Discrete Play Pause:
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.0.1.0-->
<commandGroup open="True" name="Discrete Play Pause" enabled="True" prefix="" priority="0" requiredProcess="" description="">
<command id="491" name="XBMC Play" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>Player.GetActivePlayers</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegEx</cmdType>
<params>
<param>"playerid": (.*?),</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>Player.PlayPause</param>
<param>"playerid":{Match.1},"play":true</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</command>
<command id="492" name="XBMC Pause" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>Player.GetActivePlayers</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegEx</cmdType>
<params>
<param>"playerid": (.*?),</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>Player.PlayPause</param>
<param>"playerid":{Match.1},"play":false</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</command>
</commandGroup>