Jeff,

Instead of looping as you are doing now, use a Timer callback to fire after each sound completes. The callback can then start the next sound playing and reset the timer until the list has been played.

Steve


On 9/15/2011 11:03 AM, Jeff Weiss wrote:
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

Reply via email to