Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Drop unlimited 9 second song clips into the obect and touch to play.
- // Owner only use
- //user variables
- integer waves_to_preload = 2;
- float preload_load_time = 0.5;
- float timer_interval = 8.9; //8.9 works best for 9 second sound files
- integer timer_started;
- //program variables
- list invlist;
- integer total_wave_files;
- integer last_wave_file_number;
- integer i;
- integer c;
- string preloading_wave_name;
- string playing_wave_name;
- integer play = FALSE;
- sound()
- {
- total_wave_files = llGetInventoryNumber(INVENTORY_SOUND);
- last_wave_file_number = total_wave_files - 1;
- float length = total_wave_files*9.0;
- integer c = 0;
- llSetSoundQueueing(TRUE);
- integer x = total_wave_files;
- llOwnerSay("(" + llGetScriptName() + ") " + llGetSubString((string)(x * preload_load_time),0,3) + " sec buffering..");
- timer_started = FALSE;
- for (c = 0 ; c <= (x - 1) ; c++) {
- preloading_wave_name = llGetInventoryName(INVENTORY_SOUND, c);
- llTriggerSound(preloading_wave_name, 0.0);
- llPreloadSound(preloading_wave_name);
- // finishing preloading.
- if ( ((total_wave_files - c) * preload_load_time) < timer_interval && !timer_started) {
- llSetTimerEvent(timer_interval);
- timer_started = TRUE;
- }
- llSleep(preload_load_time);
- }
- i=0; c=0;
- // llOwnerSay("Done! Playing.. (" + (string)llFloor(length) + " secs) Click to stop.");
- }
- default
- {
- on_rez(integer start_param)
- {
- llResetScript();
- }
- attach(key id)
- {
- if (!play) {
- sound();
- } else {
- llSetTimerEvent(0.0);
- llStopSound();
- llOwnerSay("Stopping..");
- }
- play = !play;
- }
- timer()
- {
- if ( i > last_wave_file_number ) i = 0;
- playing_wave_name = llGetInventoryName(INVENTORY_SOUND, i);
- llPlaySound(playing_wave_name, 1.0);
- if(i + waves_to_preload <= last_wave_file_number)
- {
- preloading_wave_name = llGetInventoryName(INVENTORY_SOUND, i + waves_to_preload);
- llTriggerSound(llGetInventoryName(INVENTORY_SOUND, i + waves_to_preload), 0.0);
- llPreloadSound(llGetInventoryName(INVENTORY_SOUND, i + waves_to_preload));
- }
- i++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement