Hi Chris,
here is another smart ;-) approach to your problem.I want to use the player object to play several mp3 files in a row. I am successful at changing the FileName property and playing my files, but the trick is that I need to wait until each sound is finished playing before playing the next one. Is there any way to do this? Such as a 'wait until player "myPlayer" is done' type of command? Please help.Thanks, Chris Sheffield Read Naturally
I will use the "send xxx in yyy" command.
My example requires a field "mp3list", where the filenames
of the mp3 files are stored. Could of course be a variable or
custom-property, too.
###############
global songmessage
## the name does not matter, call it walter if you like :-)
## here we will store the id of the message that we will send
## when the current mp3 is finished. So we can cancel that
## message from being delivered when we close this card of stack.
## See "pendingmessages" in the docs...
on mouseup
## can of course be "on opencard" or whenever you want to start the songs...
set the filename of player "xyz" to line 1 of fld "mp3list"
start player "xyz"
send "nextsong" to me in (the duration of player "xyz"/the timescale of player "xyz") secs
## This means that this message will be send exactly when the current song has finished...
## Every sound- or video-file can (and will ;-) have a duration. Surprise, surprise... ;-)
## Unfortunately this duration is measured in the files own timescale...
## Means how much timeunits per second that file will be measured in..
## But both properties can be queried :-)
put the result into songmessage
## Each command that will be "send..." will be managed by the engine
## in the "pendingmessages" and gets its own id.
## Now we store this id in this global var "sonmessage", so we can cancel
## it when leaving this card or closing this stack
## You can take another name for that var, of course...
end mouseup
on nextsong
put lineoffset(the filename of player "xyz", fld "mp3list") into whatline
##what is the current song...
if whatline < the num of lines of fld "mp3list" then
## only if it is not the last song in this list...
set the filename of player "xyz" to empty
set the filename of player "xyz" to line (whatline + 1) of fld "mp3list"
start player "xyz"
## next one...
send "nextsong" to me in (the duration of player "xyz"/the timescale of player "xyz") secs
put the result into songmessage
end if
end nextsong
################# Does even fit in the StarterKit limit :-)
Then you could write this in the cardscript:
on closecard
global songmessage
if "songmessage" is in the pendingmessages then
## Maybe much time has already passed and all songs have been played...
## Omit this "if...then..." caluse if you LOVE error-dialogs ;-)
cancel songmessage
end if
...
end closecard
Hope this helps.
Regards
Klaus Major
[EMAIL PROTECTED]
_______________________________________________
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution
