Hey,
also bevor mal die erste Meldung kommt wie:
ZitatWieso gibt es Google?
Also. Ich brauch eine UDF oder ähnliches, mit dem ich die YouTube Videos im Hintergrund zum Laufen bringe. Also eigentlich nur den Sound. Keine Angst, habe nichts illegales vor ^^. Ja, dann sollte ich das Video mit der Google API steuern können. Also dass ich die Volume steuern/auslesen, die Zeit steuern und ich es Play/Pausen kann. Hoffe, ihr könnt mir helfen. Habe schon das hier probiert:
#include-once
#include <IE.au3>
; #FUNCTION# ===================================================================
; Name ..........: _IE_YT
; Description ...: YouTube API for IE.au3
; AutoIt Version : V3.3.0.0
; Requirement(s).: IE.au3
; Syntax ........: _IE_YT(ByRef $Socket[, $sCommand = "playVideo"[, $vArg1 = ""[, $vArg2 = ""[, $sPlayerID = "movie_player"]]]])
; Parameter(s): .: $oIE - IE Object
; $sCommand - Optional: (Default = "playVideo") :
; | loadWait / $vArg1 = TimeOut in ms (int), Default = 10000
; | playVideo
; | pauseVideo
; | stopVideo
; | clearVideo
; | getVideoBytesLoaded
; | getvideobytestotal
; | getVideoStartBytes
; | mute
; | unMute
; | isMuted
; | setVolume / $vArg1 = Volume (int) (min=0, max=100)
; | getVolume
; | seekTo / $vArg1 = Secs (int), $vArg2 = allowSeekAhead (boolean), Default = true
; | getPlayerState
; | getCurrentTime
; | getDuration
; | setSize / $vArg1 = height (int), $vArg2 = width (int) (min=50)
; | getVideoUrl
; | getVideoEmbedCode
; | loadVideoById / $vArg1 = id (string), $vArg2 = start (int)
; | cueVideoById / $vArg1 = id (string), $vArg2 = start (int)
; $vArg1 - Optional: (Default = "") :
; $vArg2 - Optional: (Default = "") :
; $sPlayerID - Optional: (Default = "movie_player") :
; Return Value ..: Success - Deppending on the function call
; Failure - Deppending on the function call and sets
; @ERROR - 1 = error while sending command to player or no player found
; | 2 = wrong value or datatype of $vArg1 or $vArg2
; | 3 = wrong or unsupported $sCommand
; | 4 = wrong datatype returned from API
; | 5 = TimeOut from "loadWait"
; Author(s) .....: Thorsten Willert, iLoveAU3 (loadVideoById, cueVideoById), SEuBo (modification for IE.au3)
; Remarks .......: Currently not supported: setSize (Video), addEventListener, all events
; Date ..........: Tue Apr 28 22:20:44 CEST 2009 @889 /Internet Time/
; Link ..........: http://code.google.com/intl/de…ube/js_api_reference.html
; Example .......: _IE_YT($Socket,"pauseVideo"), _IE_YT($Socket,"setSize",480,385)
; ==============================================================================
Func _IE_YT($oIE, $sCommand = "playVideo", $vArg1 = "", $vArg2 = "", $sPlayerID = "movie_player")
Local $iRet
Switch StringLower($sCommand)
Case "loadwait"
;dummy
Case "playvideo"
$sCommand = "playVideo()"
$iRet = 0
Case "pausevideo"
$sCommand = "pauseVideo()"
$iRet = 0
Case "stopvideo"
$sCommand = "stopVideo()"
$iRet = 0
Case "clearvideo"
$sCommand = "clearVideo()"
$iRet = 0
Case "getvideobytesloaded"
$sCommand = "getVideoBytesLoaded()"
$iRet = 1
Case "getvideobytestotal"
$sCommand = "getVideoBytesTotal()"
$iRet = 1
Case "getvideostartbytes"
$sCommand = "getVideoStartBytes()"
$iRet = 1
Case "mute"
$sCommand = "mute()"
$iRet = 0
Case "unmute"
$sCommand = "unMute()"
$iRet = 0
Case "ismuted"
$sCommand = "isMuted()"
$iRet = 1
Case "setvolume"
$vArg1 = Number($vArg1)
If IsInt($vArg1) And $vArg1 >= 0 And $vArg1 <= 100 Then
$sCommand = "setVolume(" & $vArg1 & ")"
Else
SetError(2)
Return -2
EndIf
$iRet = 0
Case "getvolume"
$sCommand = "getVolume()"
$iRet = 1
Case "seekto"
$vArg1 = Number($vArg1)
If $vArg2 = "" Or $vArg2 = Default Then $vArg2 = True
If IsInt($vArg1) And IsBool($vArg2) Then
If $vArg2 Then
$vArg2 = "true"
Else
$vArg2 = "false"
EndIf
$sCommand = "seekTo(" & $vArg1 & "," & $vArg2 & ")"
Else
SetError(2)
Return -2
EndIf
$iRet = 0
Case "getplayerstate"
$sCommand = "getPlayerState()"
$iRet = 1
Case "getcurrenttime"
$sCommand = "getCurrentTime()"
$iRet = 1
Case "getduration"
$sCommand = "getDuration()"
$iRet = 1
Case "setsize"
$vArg1 = Number($vArg1)
$vArg2 = Number($vArg2)
If $vArg2 = 0 Or $vArg2 = Default Then $vArg2 = $vArg1
If IsInt($vArg1) And IsInt($vArg2) And $vArg1 > 50 And $vArg2 > 50 Then
$sCommand = "setSize(" & $vArg1 & "," & $vArg2 & ")"
Else
SetError(2)
Return -2
EndIf
$iRet = 0
Case "getvideourl"
$sCommand = "getVideoUrl()"
$iRet = 2
Case "getvideoembedcode"
$sCommand = "getVideoEmbedCode()"
$iRet = 2
Case "loadVideoById"
$vArg1 = String($vArg1)
$vArg2 = Number($vArg2)
If $vArg2 = Default Or $vArg2 = "" Then $vArg2 = 0
If IsString($vArg1) And IsNumber($vArg2) Then
$sCommand = "loadVideoById('" & $vArg1 & "'," & $vArg2 & ")"
Else
SetError(2)
Return -2
EndIf
Case "cueVideoById"
$vArg1 = String($vArg1)
$vArg2 = Number($vArg2)
If $vArg2 = Default Or $vArg2 = "" Then $vArg2 = 0
If IsString($vArg1) And IsNumber($vArg2) Then
$sCommand = 'cueVideoById("' & $vArg1 & '",' & $vArg2 & ")"
Else
SetError(2)
Return -2
EndIf
Case Else
SetError(3)
Return -2
EndSwitch
If $sCommand <> "loadwait" Then
Local $vRetVal = $oIE.document.parentwindow.execScript(StringFormat("try{document.getElementById('%s').%s;}catch(e){'_IE_YT_Error'}", $sPlayerID, $sCommand))
If Not @error And $vRetVal <> "_IE_YT_Error" Then
Switch $iRet
Case 0
If $vRetVal = "" Then
Return $vRetVal
Else
SetError(4)
Return ""
EndIf
Case 1
If IsNumber(Number($vRetVal)) Then
Return $vRetVal
Else
SetError(4)
Return -2
EndIf
Case 2
If IsString($vRetVal) Then
Return $vRetVal
Else
SetError(4)
Return ""
EndIf
EndSwitch
Else
SetError(1)
Return -2
EndIf
Else
If $vArg1 = "" Or Not IsInt(Number($vArg1)) Then $vArg1 = 10000
Local $TimeOutTimer = TimerInit()
Local $sState
Do
$sState = _IE_YT("getPlayerState")
If @error Then Return 0
Sleep(500)
If TimerDiff($TimeOutTimer) > $vArg1 Then
SetError(5)
Return 0
EndIf
Until $sState <= 3 Or $sState = "_IE_YT_Error"
Return 1
EndIf
EndFunc ;==>_IE_YT
Ich bekomme dann aber immer den Fehler
"Variable must be of type 'Object'"
Cheers,
StevenX