13 Years of Service
44%
Code:
>#include-once
Local $pObj = 0
; ------------------------------------------------------------------------------
;
; AutoIt Version: 3.0
; Language: English
; Description: Functions that assist with Media Manipulation.
;
; Notes: Keep Player Open For as Long as Your Script will be playing songs.
; Don't Close and Restart the Player for every song Change.
; Run WMStartPLayer() First, All other Functions Depend on it Running first.
; ------------------------------------------------------------------------------
; ====================================================================================================
; Description ..: Opens The Player Object
; Parameters ...:
; Return values :
; Author .......: CFire
; Notes ........: Sets @error = 1 When This Function has Been More than Once
; ====================================================================================================
Func WMStartPlayer()
If $pObj = 0 Then
$pObj = ObjCreate("WMPlayer.ocx")
Else
SetError(1)
EndIf
EndFunc
; ====================================================================================================
; Description ..: Closes The Player Object
; Parameters ...:
; Return values :
; Author .......: CFire
; Notes ........:
; ====================================================================================================
Func WMClosePlayer()
If WMGetState() <> "Stopped" Then WMStop()
$pObj = 0
EndFunc
; ====================================================================================================
; Description ..: Opens The Media file in The Player Object
; Parameters ...: $sFilename - Filename of the Media to Open
; Return values : Song Object to be used in other functions
; Author .......: CFire
; Notes ........: Sets @error = 1 When This Function has Been called Before WMStartPlayer()
; ====================================================================================================
Func WMOpenFile($sFilename)
If $pObj <> 0 Then Return $pObj.newMedia($sFilename)
If $pObj = 0 Then SetError(1)
EndFunc
; ====================================================================================================
; Description ..: Sets the Volume of the Player.
; Parameters ...: $iVol - New Volume ( 0 - 100 )
; Return values :
; Author .......: CFire
; Notes ........: Does Not Affect System/Wave Volumes!!
; Sets @error = 1 When This Function has Been called Before WMStartPlayer()
; ====================================================================================================
Func WMSetVolume($iVol)
If $pObj <> 0 Then $pObj.settings.volume = $iVol
If $pObj = 0 Then SetError(1)
EndFunc
; ====================================================================================================
; Description ..: Returns the Current Volume of The Player
; Parameters ...:
; Return values : Current Volume ( 0 - 100 )
; Author .......: CFire
; Notes ........: Sets @error = 1 When This Function has Been called Before WMStartPlayer()
; ====================================================================================================
Func WMGetVolume()
If $pObj <> 0 Then Return $pObj.settings.volume
If $pObj = 0 Then SetError(1)
EndFunc
; ====================================================================================================
; Description ..: Fast Forwards the Current Playing Media
; Parameters ...:
; Return values :
; Author .......: CFire
; Notes ........: Sets @error = 1 When This Function has Been called Before WMStartPlayer()
; ====================================================================================================
Func WMFastForward()
If $pObj <> 0 Then $pObj.controls.fastForward()
If $pObj = 0 Then SetError(1)
EndFunc
; ====================================================================================================
; Description ..: Rewinds the Current Playing Media
; Parameters ...:
; Return values :
; Author .......: CFire
; Notes ........: Sets @error = 1 When This Function has Been called Before WMStartPlayer()
; ====================================================================================================
Func WMReverse()
If $pObj <> 0 Then $pObj.controls.fastReverse()
If $pObj = 0 Then SetError(1)
EndFunc
; ====================================================================================================
; Description ..: Plays a Media for the first time
; Parameters ...: $sFilename - Filename of the Media to Play
; Return values :
; Author .......: CFire
; Notes ........: Sets @error = 1 When This Function has Been called Before WMStartPlayer()
; ====================================================================================================
Func WMPlay($sFilename)
If $pObj <> 0 Then
$pObj.url = $sFilename
While Not WMGetState() = "Playing"
Sleep(100)
WEnd
EndIf
If $pObj = 0 Then SetError(1)
EndFunc
; ====================================================================================================
; Description ..: Pauses the Current Playing Media
; Parameters ...:
; Return values :
; Author .......: CFire
; Notes ........: Sets @error = 1 When This Function has Been called Before WMStartPlayer()
; ====================================================================================================
Func WMPause()
If $pObj <> 0 Then $pObj.controls.pause()
If $pObj = 0 Then SetError(1)
EndFunc
; ====================================================================================================
; Description ..: Resumes a Stopped or Paused Media
; Parameters ...:
; Return values :
; Author .......: CFire
; Notes ........: Sets @error = 1 When This Function has Been called Before WMStartPlayer()
; ====================================================================================================
Func WMResume()
If $pObj <> 0 Then $pObj.controls.play()
If $pObj = 0 Then SetError(1)
EndFunc
; ====================================================================================================
; Description ..: Stops the Current Playing Media
; Parameters ...:
; Return values :
; Author .......: CFire
; Notes ........: Sets @error = 1 When This Function has Been called Before WMStartPlayer()
; ====================================================================================================
Func WMStop()
If $pObj <> 0 Then $pObj.controls.stop()
If $pObj = 0 Then SetError(1)
EndFunc
; ====================================================================================================
; Description ..: Sets the Position of the Media
; Parameters ...: $iPos - Position in Seconds
; Return values :
; Author .......: CFire
; Notes ........: No need to call a WMPlay(). This will continue play at the new Position
; Sets @error = 1 When This Function has Been called Before WMStartPlayer()
; ====================================================================================================
Func WMSetPosition($iPos)
If $pObj <> 0 Then $pObj.controls.currentPosition = $iPos
If $pObj = 0 Then SetError(1)
EndFunc
; ====================================================================================================
; Description ..: Returns the Current Position in the Media
; Parameters ...:
; Return values : Position in Seconds
; Author .......: CFire
; Notes ........: Sets @error = 1 When This Function has Been called Before WMStartPlayer()
; ====================================================================================================
Func WMGetPosition()
If $pObj <> 0 Then Return $pObj.controls.currentPosition
If $pObj = 0 Then SetError(1)
EndFunc
; ====================================================================================================
; Description ..: Returns the Duration / Length of the Media
; Parameters ...: $sObj - The Song Object returned from WMOpenFile()
; Return values : Duration in Seconds
; Author .......: CFire
; Notes ........:
; ====================================================================================================
Func WMGetDuration($sObj)
Return $sObj.GetItemInfo("Duration")
EndFunc
; ====================================================================================================
; Description ..: Functions that Get a Property of the Media
; Parameters ...: $sObj - The Song Object returned from WMOpenFile()
; Return values : Specific Property
; Author .......: CFire
; Notes ........:
; ====================================================================================================
Func WMGetArtist($sObj)
Return $sObj.GetItemInfo("Artist")
EndFunc
Func WMGetTitle($sObj)
Return $sObj.GetItemInfo("Title")
EndFunc
Func WMGetAlbum($sObj)
Return $sObj.GetItemInfo("Album")
EndFunc
Func WMGetBitrate($sObj)
Return $sObj.GetItemInfo("Bitrate")
EndFunc
Func WMGetMediaType($sObj)
Return $sObj.GetItemInfo("MediaType")
EndFunc
Func WMGetFileSize($sObj)
Return $sObj.GetItemInfo("FileSize")
EndFunc
Func WMGetFileType($sObj)
Return $sObj.GetItemInfo("FileType")
EndFunc
Func WMGetCategory($sObj)
Return $sObj.GetItemInfo("WM/Category")
EndFunc
Func WMGetGenre($sObj)
Return $sObj.GetItemInfo("WM/Genre")
EndFunc
Func WMGetYear($sObj)
Return $sObj.GetItemInfo("WM/Year")
EndFunc
Func WMGetState()
If $pObj <> 0 Then
$sStates = "Undefined,Stopped,Paused,Playing,ScanForward,ScanReverse,Buffering,"
$sStates &= "Waiting,MediaEnded,Transitioning,Ready,Reconnecting"
$aStates = StringSplit($sStates,",")
$iState = $pObj.playState() + 1
return $aStates[$iState]
EndIf
If $pObj = 0 Then SetError(1)
EndFunc