Hi
Habe heute mal versucht mit der SoundExtra-Udf den Sound zu verlangsamen. Direkt wurde mir eine Fehlermeldung rausgegeben, welche mir sagte, dass die Funktion mciSendString nicht enthalten wäre. Habe dadrauf im Forum gesucht und dieses Codestück gefunden:
Spoiler anzeigen
Func mciSendString($string, $iLen = 0)
Local $iRet
$iRet = DllCall("winmm.dll", "int", "mciSendStringA", "str", $string, "str", "", "long", $iLen, "long", 0)
If Not @error Then Return $iRet[2]
EndFunc ;==>mciSendString
Trotz diesem Code ging es aber nicht. Hoffe ihr könnt mir helfen.
Die komplette UDF(mit dem Fehlerhaften Code):
Spoiler anzeigen
Func _SoundTimeToMs($Hours, $Minutes, $Seconds)
[/autoit] [autoit][/autoit] [autoit]Return ($Hours*3600000)+($Minutes*60000)+($Seconds*1000)
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _SoundMsToTime($ms)
[/autoit] [autoit][/autoit] [autoit]Local $Return[3]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]if $ms >= 3600000 Then; 1000*60*60 = 3600000
$Hours = Floor($ms/3600000)
$Rest = $ms-($Hours*3600000)
Else
$Hours = 0
$Rest = $ms
EndIf
If $Rest >= 60000 Then; 1000*60 = 60000
$Minutes = Floor($Rest/60000)
$Rest = $Rest-($Minutes*60000)
Else
$Minutes = 0
$Rest = $ms
EndIf
$Seconds = Round($Rest/1000)
[/autoit] [autoit][/autoit] [autoit]$Return[0] = $Hours
$Return[1] = $Minutes
$Return[2] = $Seconds
Return $Return
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _SoundInfo($sSnd_id, $Parameter); look at "http://msdn2.microsoft.com/en-us/library/ms713277(VS.85).aspx" at the table "digitalvideo" for possible parameters
[/autoit] [autoit][/autoit] [autoit]If StringInStr($sSnd_id,'!') Then Return SetError(3, 0, 0); invalid file/alias
[/autoit] [autoit][/autoit] [autoit];return status
Return mciSendString("status " & FileGetShortName($sSnd_id) & " " &$Parameter)
EndFunc;==>_SoundInfo
Func _SoundSpeed($sSnd_id, $Speed); $Speed: 0 - 2267, 1000= normal
;Declare variables
Local $iRet
If StringInStr($sSnd_id,'!') Then Return SetError(3, 0, 0); invalid file/alias
[/autoit] [autoit][/autoit] [autoit]if $Speed < 0 or $Speed > 2267 Then Return SetError(1, 0, 0)
[/autoit] [autoit][/autoit] [autoit]$iRet = mciSendString("set " & FileGetShortName($sSnd_id) & " speed "&$Speed)
;return
If $iRet = 0 Then
Return 1
Else
Return SetError(1, 0, 0)
EndIf
EndFunc;==>_SoundSpeed
Func _SoundPanLeft($sSnd_id, $Pan); $Pan: 0 - 1000, 1000= normal
;Declare variables
Local $iRet
If StringInStr($sSnd_id,'!') Then Return SetError(3, 0, 0); invalid file/alias
[/autoit] [autoit][/autoit] [autoit]if $Pan < 0 or $Pan > 1000 Then Return SetError(1, 0, 0)
[/autoit] [autoit][/autoit] [autoit]$iRet = mciSendString("setaudio " & FileGetShortName($sSnd_id) & " left volume to "&$Pan)
;return
If $iRet = 0 Then
Return 1
Else
Return SetError(1, 0, 0)
EndIf
EndFunc;==>_SoundPanLeft
Func _SoundPanRight($sSnd_id, $Pan); $Pan: 0 - 1000, 1000= normal
;Declare variables
Local $iRet
If StringInStr($sSnd_id,'!') Then Return SetError(3, 0, 0); invalid file/alias
[/autoit] [autoit][/autoit] [autoit]if $Pan < 0 or $Pan > 1000 Then Return SetError(1, 0, 0)
[/autoit] [autoit][/autoit] [autoit]$iRet = mciSendString("setaudio " & FileGetShortName($sSnd_id) & " right volume to "&$Pan)
;return
If $iRet = 0 Then
Return 1
Else
Return SetError(1, 0, 0)
EndIf
EndFunc;==>_SoundPanRight
Func _SoundVolume($sSnd_id, $Volume); $Volume: 0 - 1000, 1000= normal
;Declare variables
Local $iRet
If StringInStr($sSnd_id,'!') Then Return SetError(3, 0, 0); invalid file/alias
[/autoit] [autoit][/autoit] [autoit]if $Volume < 0 or $Volume > 1000 Then Return SetError(1, 0, 0)
[/autoit] [autoit][/autoit] [autoit]$iRet = mciSendString("setaudio " & FileGetShortName($sSnd_id) & " volume to "&$Volume)
;return
If $iRet = 0 Then
Return 1
Else
Return SetError(1, 0, 0)
EndIf
EndFunc;==>_SoundVolume
Func mciSendString($string)
Local $iRet
$iRet = DllCall("winmm.dll", "int", "mciSendStringA", "str", $string, "str", "", "int", 65534, "hwnd", 0)
If Not @error Then Return $iRet[2]
EndFunc ;==>mciSendString
Danke schonmal, wie immer, im Vorraus