Playing Multiple Audio Files in Sequence

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • Desmond
    Indigo Rose Staff Member
    • Jul 2003
    • 710

    Playing Multiple Audio Files in Sequence

    Playing Multiple Video Files in Sequence

    Playing Multiple Audio Files in Sequence

    Document ID: IR10029
    The information in this article applies to:
    • AutoPlay Media Studio 5.0 Standard Edition
    • AutoPlay Media Studio 5.0 Professional Edition

    SUMMARY

    This article describes how to play multiple video files in sequence.

    DISCUSSION

    In AutoPlay Media Studio 5.0, it is possible to play one audio file after another using the On Audio event.

    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.

    To accomplish this:

    1. Insert the following code into your Global Functions (click Project, click Global Functions):
      -- keep track of the audio files

      audio_count = 1;

      --load desired audio files into a table

      audio = {

      "Autoplay\\Audio\\audio_file1.ogg",

      "Autoplay\\Audio\\audio_file2.ogg",

      "Autoplay\\Audio\\audio_file3.ogg"

      };
    2. Insert the following code into the On Show event of your page:
      Audio.Load(CHANNEL_USER1, audio[audio_count], true, false);
    3. Insert the following code into the On Audio event of your page:
      if e_State == "Finish" then

      audio_count = audio_count + 1;

      --ensure a valid file will be loaded

      if audio_count < Table.Count(audio)+1 then

      Audio.Load(CHANNEL_USER1, audio[audio_count], true, false);

      end

      end

    MORE INFORMATION

    For more information please see the following topics in the AutoPlay Media Studio 5.0 help file:

    • Program Reference | Actions | Audio | Audio.Load

    KEYWORDS: AutoPlay Media Studio 5.0, Load, Audio, Sound, Play, Multiple Files


    Last reviewed: September 26, 2003
    Copyright © 2003 Indigo Rose Corporation. All rights reserved.
  • threaded
    Forum Member
    • Aug 2005
    • 17

    #2
    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
    Code:
    -- 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
    Code:
    Audio.Load(CHANNEL_BACKGROUND, audio[audio_count], true, false);
    in page on audio
    Code:
    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
    Last edited by threaded; 08-13-2005, 05:17 AM.

    Comment

    • Intrigued
      Indigo Rose Customer
      • Dec 2003
      • 6138

      #3
      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.

      Code:
      if e_State == "Finish" then
          audio_count = audio_count + 1;
          --ensures a valid file will be loaded
          if audio_count <[B][COLOR=Green][SIZE=6]=[/SIZE][/COLOR][/B] Table.Count(audio)[COLOR=Red][SIZE=6]+1[/SIZE][/COLOR] 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

      Comment

      • threaded
        Forum Member
        • Aug 2005
        • 17

        #4
        couldnt it just be like this...I dunno and havent tested your observation or this...just in theory, this should be right...

        Code:
            if audio_count = Table.Count(audio) then

        Comment

        • Intrigued
          Indigo Rose Customer
          • Dec 2003
          • 6138

          #5
          Originally posted by threaded
          couldnt it just be like this...I dunno and havent tested your observation or this...just in theory, this should be right...

          Code:
              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
          Intrigued

          Comment

          • threaded
            Forum Member
            • Aug 2005
            • 17

            #6
            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 =)

            Comment

            • Intrigued
              Indigo Rose Customer
              • Dec 2003
              • 6138

              #7
              Here's a breakdown of what the operators mean and thus one can figure out the math end. :yes



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

              <= (less-than or equal to)
              Intrigued

              Comment

              Working...
              X