-
September 3rd, 2013, 08:39 AM
#1
Sound doesn't play instantly...but wait for next operation to complete!!
I've a big interrogation concerning sound playback (WMP.lib)!
This code should play a sound, then compute...but it computes then play the sound!
Code:
Class MainWindow
Dim writingPath As String = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) & "\_UI Sounds\"
Dim uiPlayer As New WMPLib.WindowsMediaPlayer
Private Sub MainWindow_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
RunTest()
End Sub
Private Sub RunTest()
Debug.Print("Started!")
uiPlayer.URL = writingPath & "son1.wav"
uiPlayer.controls.play()
'
Dim a As Integer = 0
For i As Integer = 0 To 999999999
a = i
Next
Debug.Print("Done!")
End Sub
End Class
I thought that I perhaps should run the sound in a thread to be sure that it's played by its own!?
But this gives the same result
Code:
Imports System.Threading
Class MainWindow
Dim writingPath As String = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) & "\_UI Sounds\"
Dim uiPlayer As New WMPLib.WindowsMediaPlayer
Dim uiThread As Thread = New Thread(AddressOf PlayFile)
Private Sub MainWindow_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
RunTest()
End Sub
Private Sub RunTest()
uiThread = New Thread(AddressOf PlayFile)
uiThread.Start()
'
Debug.Print("Started!")
Dim a As Integer = 0
For i As Integer = 0 To 999999999
a = i
Next
Debug.Print("Done!")
End Sub
Private Sub PlayFile()
uiPlayer.URL = writingPath & "son1.wav"
uiPlayer.controls.play()
End Sub
End Class
How should I please proceed to hear my sound 'instantly'?
What's my mistake?
Thanks for your help!!
-
September 3rd, 2013, 06:02 PM
#2
Re: Sound doesn't play instantly...but wait for next operation to complete!!
Why are you using a busy loop that basically does nothing other than consume processor?
Always use [code][/code] tags when posting code.
-
September 3rd, 2013, 06:29 PM
#3
Re: Sound doesn't play instantly...but wait for next operation to complete!!
Well...I thought it was clear!! This is to illustrate a consuming process and keep the code simple to ask my question !!
Any idea?
-
September 4th, 2013, 03:25 AM
#4
Re: Sound doesn't play instantly...but wait for next operation to complete!!
No need for attitude...
Anyways, there are other ways to play a sound, have a look at this FAQ :
http://forums.codeguru.com/showthrea...75#post1728375
-
September 6th, 2013, 02:16 AM
#5
Re: Sound doesn't play instantly...but wait for next operation to complete!!
Well, I had posted a simple code, hoping that it would be more clear for users to help me...but I'm afraid that I'd better post something very similar to my actual code..if I want the problem to be clearly exposed...and help you to try to help me ;-)
There's a sound class, called UISound:
Code:
Imports System.Threading
Public Class UISound
Dim writingPath As String = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) & "\_UI Sounds\"
Public Shared WithEvents uiPlayer As New WMPLib.WindowsMediaPlayer
Public Shared uiThread As Thread = New Thread(AddressOf ReceiveSound)
Public Shared Sub ReceiveSound(ByVal url As String)
uiThread = New Thread(AddressOf PlayFile)
uiThread.Start(url)
End Sub
Public Shared Sub PlayFile(ByVal url As String)
uiPlayer.URL = writingPath & url
uiPlayer.controls.play()
End Sub
End Class
The sound is called from a sub in the MainWindow...which itself fires other subs in cascade that involve a heavy compute time:
Code:
Sub one()
UISound.ReceiveSound("sound1.wav")
Dim a As Integer = 0
For i As Integer = 0 To 999999999
a = i
Next
Two()
End Sub
Sub two()
Dim a As Integer = 0
For i As Integer = 0 To 999999999
a = i
Next
Three()
End Sub
Sub Three()
Dim a As Integer = 0
For i As Integer = 0 To 999999999
a = i
Next
End Sub
It appears that the sound is played after the whole "cascade" is runned, so after Sub Three() End.
Thanks for your help!!
Last edited by Jayme65; September 6th, 2013 at 02:37 AM.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|