PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → mciExecute("play ...")
mciExecute("play ...")
Started by King, Feb., 16 2004 8:55 AM - 2 replies
Posted on February, 16 2004 - 8:55 AM
Hi all,
Suppose I have 2 or more .MP3 named "m1.mp3", "m2.mp3", "m3.mp3" and I
want to make a single call as captioned so that m2.mp3 will be played just
after m1 and so does m3 with no delay in between. Any idea?
Thanks in advance!
King
Posted on February, 16 2004 - 4:56 PM
Hi all,
Suppose I have 2 or more .MP3 named "m1.mp3", "m2.mp3", "m3.mp3" and I
want to make a single call as captioned so that m2.mp3 will be played just
after m1 and so does m3 with no delay in between. Any idea?
Thanks in advance!
King

Off the top of my head you cannot list multiple commands in either the MciExecute or MciPlay statements. One way I thought of (have not tried this yet, I am shooting from the hip here) may be to load your list into a memory table, then loop through the table and play each one in your specified order. This would be great for manually tagging each mp3 individually in a browse table, or the result of a query, or having pre-selected lists (a "Favorite Big Band Tunes" or "Favorite Rap Tunes" list stored in a seperate HyperFile). In your loop you may have to check MciStatus to see if the song us over before playing the next one, maybe not.
Also, are you sure MciExecute is the correct command instead of MciPlay? Can anyone shed some light on what the difference is? To me it seems MciPlay would play the entire mp3 then return a value. From the Help: "True if the file has been played, False otherwise." If your loop waited for the value, MciStatus would not need to be checked, but you may have to use Multitask to make WD give up some time to the MMSystem.DLL.
Again, have not tried this yet. Can you keep us advised on your progress?
Thanks,
Art
Posted on February, 17 2004 - 2:14 AM
Hi Art,
MciExecute() is a wrapper function for play, record and etc instead of mciPlay.
I did loop through in a table with no problem playing the selected order but filling the delay time gap between m1 and m2, for example, is
tedious.
My intention to this is trying to build a parser for the phonetic
symbols. Each .MP3 file represents a token for a sound and when needed,
they join together to form a word in an order that being
parsed and recognised.
Thanks for your fruitful info, it helps.
I welcome any of you who can provide more info as much as possible because
of my limitation to the sound technology.
Thanks again and keep you guys posted for a good progress.
King
Hi all,
Suppose I have 2 or more .MP3 named "m1.mp3", "m2.mp3", "m3.mp3" and I
want to make a single call as captioned so that m2.mp3 will be played just
after m1 and so does m3 with no delay in between. Any idea?
Thanks in advance!
King
Off the top of my head you cannot list multiple commands in either the MciExecute or MciPlay statements. One way I thought of (have not tried this yet, I am shooting from the hip here) may be to load your list into a memory table, then loop through the table and play each one in your specified order. This would be great for manually tagging each mp3 individually in a browse table, or the result of a query, or having pre-selected lists (a "Favorite Big Band Tunes" or "Favorite Rap Tunes" list stored in a seperate HyperFile). In your loop you may have to check MciStatus to see if the song us over before playing the next one, maybe not.

Also, are you sure MciExecute is the correct command instead of MciPlay? Can anyone shed some light on what the difference is? To me it seems MciPlay would play the entire mp3 then return a value. From the Help: "True if the file has been played, False otherwise." If your loop waited for the value, MciStatus would not need to be checked, but you may have to use Multitask to make WD give up some time to the MMSystem.DLL.
Again, have not tried this yet. Can you keep us advised on your progress?
Thanks,
Art