• Earn real money by being active: Hello Guest, earn real money by simply being active on the forum — post quality content, get reactions, and help the community. Once you reach the minimum credit amount, you’ll be able to withdraw your balance directly. Learn how it works.

AutoIT Windows madia player UDF

Status
Not open for further replies.

rayane888

LvL-23
User
Joined
Dec 5, 2011
Messages
131
Reputation
0
Reaction score
735
Points
93
Credits
0
‎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
 
Status
Not open for further replies.
Back
Top