T0M50N Posted April 27, 2014 Share Posted April 27, 2014 #include <Sound.au3> $aSound = _SoundOpen("Groovey.wav") _SoundPlay($aSound, 1) _SoundClose($aSound) Is there a way of changing the volume it's played at? I know about SoundSetWaveVolume ( percent ) but I would like it to work in XP as well. Link to comment Share on other sites More sharing options...
Belini Posted April 27, 2014 Share Posted April 27, 2014 SoundSetWaveVolume works on XP not only move the bar of the sound wave. My Codes: Virtual Key Code UDF: http://www.autoitscript.com/forum/topic/138246-virtual-key-code-udf/ GuiSplashTextOn.au3: http://www.autoitscript.com/forum/topic/143542-guisplashtexton-udf/ Menu versions of Autoit: http://www.autoitscript.com/forum/topic/137435-menu-versions-of-autoit/#entry962011 Selects first folder of letters: ]http://www.autoitscript.com/forum/topic/144780-select-folders-by-letter/#entry1021708/spoiler] List files and folders with long addresses.: http://www.autoitscript.com/forum/topic/144910-list-files-and-folders-with-long-addresses/#entry102 2926 Program JUKEBOX made in Autoit:some functions:http://www.youtube.com/watch?v=WJ2tC2fD5Qs Navigation to search:http://www.youtube.com/watch?v=lblwOFIbgtQ Link to comment Share on other sites More sharing options...
FireFox Posted April 27, 2014 Share Posted April 27, 2014 Internet says it's possible for MP3 (with mci) but not for WAV files. Link to comment Share on other sites More sharing options...
T0M50N Posted April 27, 2014 Author Share Posted April 27, 2014 SoundSetWaveVolume works on XP not only move the bar of the sound wave. From the help file: "On Windows Vista, there is no system-wide wave volume. This function only changes the wave volume for the script. It can not be used to change the wave volume of other programs." I'm assuming this applies to Windows 7 as well. Link to comment Share on other sites More sharing options...
T0M50N Posted April 27, 2014 Author Share Posted April 27, 2014 I'm thinking the easiest way to do it would be to edit the audio file with SoX and create a temporary audio file. Each audio file is about a second in length so it shouldn't be too noticeable. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted April 27, 2014 Moderators Share Posted April 27, 2014 T0M50N,In Vista+ SoundSetWaveVolume changes the volume only in the script in which it is used - not the overall system volume. In XP it changes the overall system volume and thus the volume of the script itself. So you can use the function to adjust the volume of the sound in the same script in all OSes. M23 T0M50N 1 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
T0M50N Posted April 28, 2014 Author Share Posted April 28, 2014 I'm implementing this as a volume slider in my script and, for me, having a volume slider in your script that turns everything down seems a bit redundant. The method above works pretty well though I would have to test it on slower machines to see if it would get in the way. Func OpenSounds() Global $aSndStart = _SoundOpen(@ScriptDir&"\Sound\tempBeep-01.wav") Global $aSndStop = _SoundOpen(@ScriptDir&"\Sound\tempBeep-02.wav") Global $aSndHotkey = _SoundOpen(@ScriptDir&"\Sound\tempBeep-03.wav") Global $aSndError = _SoundOpen(@ScriptDir&"\Sound\tempBeep-04.wav") Global $aSndHotkeyToggle = _SoundOpen(@ScriptDir&"\Sound\Beep-05.wav") EndFunc Func CloseSounds() _SoundClose($aSndStart) _SoundClose($aSndStop) _SoundClose($aSndHotkey) _SoundClose($aSndError) _SoundClose($aSndHotkeyToggle) EndFunc Func SetVolume($iVolume) CloseSounds() $fVolume = $iVolume / 100 $hVolumeFile = FileOpen("Volume.bat", 2) For $i = 1 To 5 FileWriteLine($hVolumeFile, '"' & @ScriptDir & '\sox\sox.exe" "' & @ScriptDir & '\Sound\Beep-0' & $i & '.wav" "' & @ScriptDir & '\Sound\tempBeep-0' & $i & '.wav" vol ' & $fVolume) Next FileClose($hVolumeFile) $hPid = Run("Volume.bat", @ScriptDir, @SW_HIDE) While ProcessExists($hPid) Sleep(10) WEnd OpenSounds() EndFunc Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now