Funktion zum Vor- und Zurückspringen innerhalb von MP3's

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;
	}