PDA

View Full Version : Playing Multiple Audio Files in Sequence


Desmond
09-26-2003, 01:14 PM
<HTML> <HEAD> <TITLE>Playing Multiple Video Files in Sequence</TITLE> </HEAD> <BODY> <h3>Playing Multiple Audio Files in Sequence</h3> <b>Document ID: IR10029</b> <hr> The information in this article applies to: <ul> <li>AutoPlay Media Studio 5.0 Standard Edition</li> <li>AutoPlay Media Studio 5.0 Professional Edition</li> </ul> <hr> <h3>SUMMARY</h3> <p>This article describes how to play multiple video files in sequence. </p> <h3>DISCUSSION</h3> <p>In AutoPlay Media Studio 5.0, it is possible to play one audio file after another using the On Audio event.<br> <br> As an example, we will create a project that when run will load three files into a table, and play them back-to-back until the third song is finished.<br> <br> To accomplish this:</p> <ol> <li>Insert the following code into your Global Functions (click Project, click Global Functions):<code><pre>-- keep track of the audio files
<br />audio_count = 1;
<br />--load desired audio files into a table
<br />audio = {
<br /> "Autoplay\\Audio\\audio_file1.ogg",
<br /> "Autoplay\\Audio\\audio_file2.ogg",
<br /> "Autoplay\\Audio\\audio_file3.ogg"
<br />}; </pre></code> </li> <li>Insert the following code into the On Show event of your page:<code><pre>Audio.Load(CHANNEL_USER1, audio[audio_count], true, false);</pre></code></li><li>Insert the following code into the On Audio event of your page:<code><pre>if e_State == "Finish" then
<br /> audio_count = audio_count + 1;
<br /> --ensure a valid file will be loaded
<br /> if audio_count < Table.Count(audio)+1 then
<br /> Audio.Load(CHANNEL_USER1, audio[audio_count], true, false);
<br /> end
<br />end</pre></code></li> </ol> <h3>MORE INFORMATION</h3> <p>For more information please see the following topics in the AutoPlay Media Studio 5.0 help file:</p> <ul> <li><b>Program Reference | Actions | Audio | Audio.Load</b></li> </ul> <p>KEYWORDS: AutoPlay Media Studio 5.0, Load, Audio, Sound, Play, Multiple Files </p> <hr> <FONT SIZE=1> Last reviewed: September 26, 2003<br> Copyright © 2003 <A HREF="http://www.indigorose.com" target="blank">Indigo Rose Corporation</a>. All rights reserved.<br> </FONT> </BODY> </HTML>

threaded
08-13-2005, 06:14 AM
Well, I started with this thread in how to create a pseudo playlist and have ams play it...I did some work on this and came up with a way to play audio in sequence and when it reaches the end, it loops back to the beginning. this is what I have..(maybe this will find its way into the help file as a better method??)

in global functions

-- keep track of the audio files
audio_count = 1;

--loads desired audio files into a table
audio = File.Find("Autoplay\\Audio\\", "??.ogg", false, true, nil, nil);

notice the stuff in File.Find...please change to suit your needs. All my audio is in Autoplay\Audio and is named numerically with only 2 numbers...01-14 for example.


in page on show
Audio.Load(CHANNEL_BACKGROUND, audio[audio_count], true, false);

in page on audio

if e_State == "Finish" then
audio_count = audio_count + 1;
--ensures a valid file will be loaded
if audio_count < Table.Count(audio)+1 then
Audio.Load(CHANNEL_BACKGROUND, audio[audio_count], true, false);
else
audio_count=1
Audio.Load(CHANNEL_BACKGROUND, audio[audio_count], true, false);
end
end

Intrigued
08-14-2005, 11:18 PM
In the last section... I do see a small area you can optimize (granted... it's not much to optimize) a tad.

Note: Take out what's in red and insert what is in green.

if e_State == "Finish" then
audio_count = audio_count + 1;
--ensures a valid file will be loaded
if audio_count <= Table.Count(audio)+1 then
Audio.Load(CHANNEL_BACKGROUND, audio[audio_count], true, false);
else
audio_count=1
Audio.Load(CHANNEL_BACKGROUND, audio[audio_count], true, false);
end
end

threaded
08-15-2005, 02:01 PM
couldnt it just be like this...I dunno and havent tested your observation or this...just in theory, this should be right...


if audio_count = Table.Count(audio) then

Intrigued
08-15-2005, 03:20 PM
couldnt it just be like this...I dunno and havent tested your observation or this...just in theory, this should be right...


if audio_count = Table.Count(audio) then


I believe the best approach mixed in with good error checking... would be what I presented. But, that's my two cents worth.

:yes

threaded
08-15-2005, 04:28 PM
I dont know if you misunderstood what I typed or if I am misunderstanding you. I meant leave the rest of the code the same (I need the rest to get the final result I want) But in mathemtaical terms if this is true
1 < 1 + 1...then 1 = 1 is true also (this is derived from you comment to remove the +1 and add an =)

Intrigued
08-15-2005, 04:38 PM
Here's a breakdown of what the operators mean and thus one can figure out the math end. :yes

http://www.indigorose.com/webhelp/ams50/Scripting_Guide/Expressions_and_Operators.htm

Specifically this line is the one to note for our conversation:

<= (less-than or equal to)