heroicpower7613 Posted May 7, 2022 Share Posted May 7, 2022 hey guys, so a quick question: does _SoundPlay leave an open handle a.k.a memory leak if _SoundClose is not called? or does the handle close automatically after the sound is finished? thanks in advance Link to comment Share on other sites More sharing options...
Danyfirex Posted May 7, 2022 Share Posted May 7, 2022 Hello, Yes You should call _SoundClose Saludos Danysys.com AutoIt... UDFs: VirusTotal API 2.0 UDF - libZPlay UDF - Apps: Guitar Tab Tester - VirusTotal Hash Checker Examples: Text-to-Speech ISpVoice Interface - Get installed applications - Enable/Disable Network connection PrintHookProc - WINTRUST - Mute Microphone Level - Get Connected NetWorks - Create NetWork Connection ShortCut Link to comment Share on other sites More sharing options...
Danp2 Posted May 7, 2022 Share Posted May 7, 2022 @DanyfirexThat's interesting. I would have said "no" as long as you didn't directly call _SoundOpen. Latest Webdriver UDF Release Webdriver Wiki FAQs Link to comment Share on other sites More sharing options...
heroicpower7613 Posted May 7, 2022 Author Share Posted May 7, 2022 7 minutes ago, Danp2 said: @DanyfirexThat's interesting. I would have said "no" as long as you didn't directly call _SoundOpen. isn't _SoundOpen required to be 'directly' called always when using _SoundPlay? 😁 like so: $vSound_ID = _SoundOpen( 'filepath.mp3' ) _SoundPlay($vSound_ID) 27 minutes ago, Danyfirex said: Hello, Yes You should call _SoundClose thank you. Link to comment Share on other sites More sharing options...
Moderators Solution Melba23 Posted May 7, 2022 Moderators Solution Share Posted May 7, 2022 heroicpower7613, As one of the authors of the Sound library I know just where to look in MSDN: Quote Closing a Device Article 08/23/2019 2 minutes to read 2 contributors The close (MCI_CLOSE) command releases access to a device or file. MCI frees a device when all tasks using a device have closed it. To help MCI manage the devices, your application must close each device or file when it is finished using it. When you close an external MCI device that uses its own media instead of files (such as CD audio), the driver leaves the device in its current mode of operation. Thus, if you close a CD audio device that is playing, even though the device driver is released from memory, the CD audio device will continue to play until it reaches the end of its content. Note Closing an application with open MCI devices can prevent other applications from using those devices until Windows is restarted. So please do close your handles! M23 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...
Danyfirex Posted May 7, 2022 Share Posted May 7, 2022 I noticed this. If you use _SoundOpen before playing It You should call Close even if you use 0 or 1 in _SoundPlay. If You use _SoundPlay("File.wav",0) It also keep Handle. If You use _SoundPlay("File.wav",1) It frees. Saludos Danysys.com AutoIt... UDFs: VirusTotal API 2.0 UDF - libZPlay UDF - Apps: Guitar Tab Tester - VirusTotal Hash Checker Examples: Text-to-Speech ISpVoice Interface - Get installed applications - Enable/Disable Network connection PrintHookProc - WINTRUST - Mute Microphone Level - Get Connected NetWorks - Create NetWork Connection ShortCut Link to comment Share on other sites More sharing options...
heroicpower7613 Posted May 7, 2022 Author Share Posted May 7, 2022 5 minutes ago, Melba23 said: heroicpower7613, As one of the authors of the Sound library I know just where to look in MSDN: So please do close your handles! M23 I got it. figured you'd show up 😁 thanks a ton. 5 minutes ago, Danyfirex said: I noticed this. If you use _SoundOpen before playing It You should call Close even if you use 0 or 1 in _SoundPlay. If You use _SoundPlay("File.wav",0) It also keep Handle. If You use _SoundPlay("File.wav",1) It frees. interesting, good to know 👍 Link to comment Share on other sites More sharing options...
Danp2 Posted May 7, 2022 Share Posted May 7, 2022 16 minutes ago, heroicpower7613 said: isn't _SoundOpen required to be 'directly' called always when using _SoundPlay? 😁 No. From the help file (emphasis added by me) -- Quote $aSndID Sound ID array as returned by _SoundOpen() or a file name So you should be able to do this -- _SoundPlay('filepath.mp3') Latest Webdriver UDF Release Webdriver Wiki FAQs Link to comment Share on other sites More sharing options...
Danyfirex Posted May 7, 2022 Share Posted May 7, 2022 @Danp2 according to my tests if you do _SoundPlay('filepath.mp3') It will not free handles. Saludos Danp2 1 Danysys.com AutoIt... UDFs: VirusTotal API 2.0 UDF - libZPlay UDF - Apps: Guitar Tab Tester - VirusTotal Hash Checker Examples: Text-to-Speech ISpVoice Interface - Get installed applications - Enable/Disable Network connection PrintHookProc - WINTRUST - Mute Microphone Level - Get Connected NetWorks - Create NetWork Connection ShortCut 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