HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/panomity.de/vr.panomity.com/plugins/vrsound.xml
<krpano>
<!--  
playHtml5sound(name, audiofile, loop*, volume*, oncomplete*);
playHtml5sound2D(keep, name, audiofile, rate*, volume*,loops*, onload*, onplay*,onpause*,onstop*,onmute*, oncomplete*);
playHtml5sound3D(keep, name, audiofile, ath, atv, range, rate*, volume*, loops*, onload*, onplay*, onpause*, onstop*, onmute*, oncomplete*);
playHtml5sound3DHS(keep, name, audiofile, hotspotname, range, rate*, volume*, loops*, onload*, onplay*, onpause*, onstop*, onmute*, oncomplete*);

Html5Soundvolume(name, value);  (Web Audio Api only)
	volume settings
	name = identification name of the sound
	value = 0.0 - 1.0 (Number)

Html5Soundplay(name);
	resumes a paused sound
	name = identification name of the sound

Html5Soundpause(name,variable);
	pauses a sound
	name = identification name of the sound
	variable (not required) = true - pause is ON, false - pause is OFF (Boolean)

Html5Soundpause(name,false); - It works the same way as Html5Soundplay(name);

Html5Soundstop(name);
	stops playing a sound
	name = identification name of the sound

Html5Soundmute(name,variable);
	stops playing a sound
	name = identification name of the sound
	variable = true - mute is ON, false - mute is OFF (Boolean)

Html5Soundrate(name, value);  (Web Audio Api only)
	playback speed settings
	name = identification name of the sound
	value = 0.5 - 4.0 (Number)

Html5SoundSetSeek(name, value);  (Web Audio Api only)
	Set the seek of the sound
	name = identification name of the sound
	value = in second (Number)

Html5SoundGetSeek(name, dstvar);  (Web Audio Api only)
	Get the seek value of the sound
	name = identification name of the sound
	dstvar = The destination variable name where the seek will be stored
Html5SoundGlobalmute(variable);
	global action to MUTE or UNMUTE for the all sounds:
	variable = true - mute is ON, false - mute is OFF (Boolean)
	-->

<!-- Events:
sound[name].onloaderror
sound[name].onplay
sound[name].onpause
sound[name].onstop
sound[name].onseeked
sound[name].oncomplete
-->


	<action name="sound_is_keep_false" scope="local" protect="true">
		ifnot(%1, // keep = false
			set(events[ev_%2].onremovepano, Html5SoundUnload(%2));
		);
	</action>

	<plugin name="soundinterface"
        url="%FIRSTXML%/plugins/soundinterface.js"
        preload="true"
        rootpath=""
        volume="1.0"
        mute="false"
        panningmodel="simple"
        worldscale="1.0"
        autopause="true"
        autounlock="true"
        keep="true"
        />

  <style name="soundinterface"
        url="%FIRSTXML%/plugins/soundinterface.js"
        preload="true"
        rootpath=""
        volume="1.0"
        mute="false"
        panningmodel="simple"
        worldscale="1.0"
        autopause="true"
        autounlock="true"
        keep="true"
        />


	<action name="playHtml5sound3DHS" protect="true">
		// keep, name, audiofile, hotspotname, range, rate*, volume*, loops*, onload*, onplay*, onpause*, onstop*, onmute*, oncomplete*
		//if(%1,
			playsound_at_hotspot(%2, calc('%3.mp3'), %4, %8, %7, %5, %13);
			set(sound[%2],
				speed=%6,
				onplay=%10,
				onpause=%11,
				onstop=%12
			);
			sound_is_keep_false(%1,%2);
		//);
	</action>

	<action name="playHtml5sound3D" protect="true">
		//keep, name, audiofile, ath, atv, range, rate*, volume*, loops*, onload*, onplay*, onpause*, onstop*, onmute*, oncomplete*
		//if(%1,
			playsound_at_hv(%2, calc('%3.mp3'), %4, %5, 1000, %9, %8, %6, %15);
			
			set(sound[%2],
				speed=%7,
				onplay=%11,
				onpause=%12,
				onstop=%13
			);
			sound_is_keep_false(%1,%2);
		//);
	</action>

	<action name="playHtml5sound2D" scope="local" protect="true">
		//keep, name, audiofile, rate*, volume*,loops*, onload*, onplay*,onpause*,onstop*,onmute*, oncomplete*
		//if(%1,
			playsound(%2, calc('%3.mp3'), %6, %4, %12);
			set(sound[%2],
				speed=%4,
				onplay=%8,
				onpause=%9,
				onstop=%10
			);
			sound_is_keep_false(%1,%2);
		//);
	</action>

	<action name="playHtml5sound" protect="true">
		if(%1, playsound(%1, calc('%2.mp3'), %3, %4, %5));

		//name, audiofile, loop*, volume*, oncomplete*
	</action>


	<action name="Html5Soundvolume" protect="true">
		if(sound[%1], set(sound[%1].volume, %2));
	</action>

	<action name="Html5Soundplay" protect="true">
		if(sound[%1], resumesound(%1));
	</action>

	<action name="Html5Soundstop" protect="true">
		if(sound[%1], stopsound(%1));
	</action>

	<action name="Html5Soundpause" protect="true">
		if(%2,
			pausesound(%1);
		,
			resumesound(%1)
		);
	</action>

	<action name="Html5Soundmute"  protect="true">
		if(sound[%1], set(sound[%1].muted, %2));
	</action>

	<action name="Html5Soundrate" protect="true">
		if(sound[%1], set(sound[%1].speed, %2));
	</action>
	

	<action name="Html5SoundSetSeek" protect="true">
		if(sound[%1], seeksound(%1, %2));
	</action>

	<action name="Html5SoundGetSeek" protect="true">
		if(sound[%1], copy(%2, sound[%1].seek));
	</action>

	<action name="Html5SoundUnload" protect="true">
      	if(sound[%1],
	      	set(sound_%1_gra,false);
	      	destroysound(%1);
      	);
	</action>

	<action name="Html5SoundGlobalmute" protect="true">
		set(soundinterface.mute, %1);
	</action>

	<action name="Html5SoundGlobalVolume" protect="true">
		set(html5_volume_global, %1);
		set(soundinterface.volume, %1);
	</action>	

</krpano>