heroicpower7613 Posted May 7, 2022 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
Danyfirex Posted May 7, 2022 Posted May 7, 2022 Hello, Yes You should call _SoundClose Saludos Danysys.com AutoIt... Reveal hidden contents 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
Danp2 Posted May 7, 2022 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
heroicpower7613 Posted May 7, 2022 Author Posted May 7, 2022 On 5/7/2022 at 2:07 PM, Danp2 said: @DanyfirexThat's interesting. I would have said "no" as long as you didn't directly call _SoundOpen. Expand isn't _SoundOpen required to be 'directly' called always when using _SoundPlay? 😁 like so: $vSound_ID = _SoundOpen( 'filepath.mp3' ) _SoundPlay($vSound_ID) On 5/7/2022 at 1:51 PM, Danyfirex said: Hello, Yes You should call _SoundClose Expand thank you.
Moderators Solution Melba23 Posted May 7, 2022 Moderators Solution 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. Expand 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: Reveal hidden contents 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
Danyfirex Posted May 7, 2022 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... Reveal hidden contents 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
heroicpower7613 Posted May 7, 2022 Author Posted May 7, 2022 On 5/7/2022 at 2:25 PM, 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 Expand I got it. figured you'd show up 😁 thanks a ton. On 5/7/2022 at 2:28 PM, 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. Expand interesting, good to know 👍
Danp2 Posted May 7, 2022 Posted May 7, 2022 On 5/7/2022 at 2:21 PM, heroicpower7613 said: isn't _SoundOpen required to be 'directly' called always when using _SoundPlay? 😁 Expand No. From the help file (emphasis added by me) -- Quote $aSndID Sound ID array as returned by _SoundOpen() or a file name Expand So you should be able to do this -- _SoundPlay('filepath.mp3') Latest Webdriver UDF Release Webdriver Wiki FAQs
Danyfirex Posted May 7, 2022 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... Reveal hidden contents 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
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