Hi …
und hier eine Funktion zum Vor- und Zurückspringen innerhalb von MP3’s auf Basis der neuen Media-Player-Funktion WAC_SetPosition. Die Funktion liest die aktuelle Position des gerade gespielten Titels aus und springt dann mittels WAC_SetPosition um die angegebene Anzahl an Sekunden vor oder zurück.
Aufruf mit
SetMP3Position($instanceID:integer, $skip:integer);
z.B.
SetMP3Position(12345,120); //Springt 2 Minuten vor
SetMP3Position(12345,-60); //Springt 1 Minute zurück
Bei Erfolg wird true zurückgegeben, bei Über- oder Unterschreitung der Track-Länge wird false zurückgegeben.
Hier die Funktion:
function SetMP3Position($instanceID,$skip)
//$instanceID = ID des Mediaplayers
//$skip = Sekunden (positiv/negativ), die übersprungen werden sollen
{
if(!is_integer($skip)) die("Skip Variable is not integer in function SetMP3Position");
$objectIDTrackPosition = @IPS_GetObjectIDByName("Track Position",$instanceID);
$objectIDTrackLength = @IPS_GetObjectIDByName("Track Length",$instanceID);
if((!$objectIDTrackPosition) or (!$objectIDTrackLength)) die("InstanceID is not a Media Player Instance in function SetMP3Position");
$trackPositionString = GetValue($objectIDTrackPosition);
$trackLengthString = GetValue($objectIDTrackLength);
$trackPositionArray = explode(":",$trackPositionString);
$trackLengthArray = explode(":",$trackLengthString);
$trackPosition = ($trackPositionArray[0] * 60) + $trackPositionArray[1];
$trackLength = ($trackLengthArray[0] * 60) + $trackLengthArray[1];
if((($trackPosition + $skip) > $trackLength) or (($trackPosition + $skip) < 0)) return false;
WAC_SetPosition($instanceID,$trackPosition + $skip);
return true;
}