The only time I manually changed I was when I wanted to exit the continuous_play function with I = Total+1 I guess I could use Exit For But this is not the problem. The for next loop sends the whole list of files off to the play routine. I put speak commands in there and they are being sent in order. I think what is happening is that when a file finishes playing, the others which have been sent were missed. They seem to keep cycling around and the one that is up at the moment the previous file ends is played. Eventually they are all played, but they are not in order. I need a way to make sure they are queued in the order the for next loop sends them. Any suggestions about how I can do this would be appreciated. Thanks, Jeff Weiss
-----Original Message----- From: Stephen Clower [mailto:[email protected]] Sent: Thursday, September 15, 2011 8:39 AM To: [email protected] Subject: Re: continuous play with audioKit Jeff, You are using the variable "I" in different ways in your ContinuousPlay function. In one part, you are manually changing it, and in another you are using it as a counter in your loop. My guess is that, depending on the scope of "I," it's being changed so much that your files end up playing out of order. Steve On 9/14/2011 4:14 PM, Jeff Weiss wrote: > Here is the Continuous_Play function and the subroutine with a timer > that plays the files. > > > Function Continuous_Play(dObj) > On Error Resume Next > If Continuous = 0 Then > Continuous = 1 > Speak "" > Speak "Continuous play on " > Sleep 300 > > Else > Continuous = 0 > Speak "" > Speak "Continuous play off " > Sleep 300 > I = Total+1 > SOAudioKit.Stop MySoundID > SOAudioKit.Invalidate MySoundID > End If > > If Continuous = 1 Then > I = Start > > For I = Start To Total > FileName = ScriptPath& "\"& MyFolder& "\"& cStr(MyArray(I-1)) > PlayFile FileName > > If Continuous = 0 Then > I = Total+1 > End If > > Next > > End If > On Error Goto 0 > End Function > > sub playFile(FileName) > On Error Resume Next > If Continuous = 0 Then > SOAudioKit.Stop MySoundID > SOAudioKit.Invalidate MySoundID > Exit Sub > End If > > if SOAudioKit.IsPlaying(MySoundID) Or Pause = 1 Then > ' need to wait until it's finished before playing the next sound, check > again in 200 milliseconds > startTimer 100, "PlayFile", FileName > exit sub > end if > > > > -----Original Message----- > From: Stephen Clower [mailto:[email protected]] > Sent: Wednesday, September 14, 2011 2:34 PM > To: [email protected] > Subject: Re: continuous play with audioKit > > Jeff, > > Could you post the code you are using to do this? > > Steve > > > > On 9/14/2011 3:31 PM, Jeff Weiss wrote: >> I am trying to play one song after another using the audioKit. I am >> using a timer so that one song won't play until the last song is >> finished. This works fine. >> >> When I use a for next loop to play 20 songs, for example, the songs > will >> play, but they are not in order. >> >> The songs play one after another, but how can I keep them in order > when >> they play. >> >> Thanks, >> >> >> >> Jeff Weiss, CVRT >> >> Rehabilitation Teacher >> >> Lions World Services for the Blind >> >> 2811 Fair Park Blvd. >> >> Little Rock, AR 72204 >> >> >> >> http://www.lwsb.org >> >> >> >> The Mission of LWSB is to educate adults who are blind or visually >> impaired for careers and independent lives. >> >> >> >> > -- Stephen Clower Product support specialist GW Micro, Inc. * 725 Airport North Office Park, Fort Wayne, IN 46825 260-489-3671 * gwmicro.com
