Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: krpano.com Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Donnerstag, 30. April 2009, 13:42

3D Sounds in Tour

Hallo,
ich werde in einer Stadttour teilweise 3D Sounds einbauen, werde also mit zwei Mikrofonen in zwei Richtungen aufnehmen, sodass ich zwei Soundfiles habe. Diese werde ich im Player auch im 180° Abstand einbauen. Werde also zwei 3D Sounds Pro Panoramabild haben.
Das hab ich versucht, klappt auch wunderbar, nur was mach ich, wenn ich per Hotspot nun zum nächsten Punkt komme, dann gehen die Sounds bei mir momentan weiter. Jedoch sollten sie aufhören und die neuen zwei Sounds sollten kommen (mit Überblendung wirds wohl kaum funktionieren, oder?
Hab schon verschiedenes ausprobiert, jedoch weiß ich nicht, wie ich das Lösen kann. Muss ich für jeden Sound das Plugin neu einbinden?

Momentan hab ich es so gemacht, zweimal das Soundinterface-Plugin eingebunden

Zitat

<plugin name="soundinterface" url="%SWFPATH%/plugins/soundinterface.swf" keep="true" rootpath="%FIRSTXML%" onloaded="" />
<plugin name="soundinterface2" url="%SWFPATH%/plugins/soundinterface.swf" keep="true" rootpath="%FIRSTXML%" onloaded="" />
Und dann hab ich in der ersten Szene die beiden Sounds eingebunden:

Zitat

<!-- play sound playsound3D(id, mp3file, ath, atv, range (wieviel Grad soll die Musik gehen), volume, loops); -->
<plugin name="soundinterface"
onloaded="playsound3D(id1, mp3s/test.mp3, 0, 0, 120, 1.0, 0);"
keep="false"
/>
<plugin name="soundinterface2"
onloaded="playsound3D(id2, mp3s/test2.mp3, 180, 0, 120, 1.0, 0);"
/>
Das funktioniert wie gesagt.
Doch wie mach ich nun, dass in Szene zwei wieder zwei neue Sounds kommen und die alten Sounds aus Szene 1 aufhören?

Gruß Marc

2

Montag, 4. Mai 2009, 10:02

Hi,

das soundinterface Plugin muss (und sollte) nur einmal eingebunden werden
(das Plugin stellt nur die Funktionen, um Sounds abzuspielen, zur Verfügung,
und muss deshalb nur einmal geladen werden)

bei playsound(ID, ...) wird für jeden Sound eine ID angegeben,
über diese ID lässt sich der sich der Sound auch wieder mit stopsound(ID);
stoppen,

oder - durch ein nachmaliges Aufrufen von playsound(ID, ...) und einem
anderem Soundfile wird der alte Sound gestoppt und der neue gestartet,


das Ganze könnte man z.B. so lösen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<plugin name="soundinterface" url="soundinterface.swf" />

<scene name="scene1" onstart="action(startsound);">
  <action name="startsound">
    playsound3D(id1, mp3s/test.mp3, 0, 0, 120, 1.0, 0);
    playsound3D(id2, mp3s/test2.mp3, 180, 0, 120, 1.0, 0);
  </action>
  ... pano ...
</scene>

<scene name="scene2" onstart="action(startsound);">
  <action name="startsound">
    playsound3D(id1, mp3s/scene2-test.mp3, 0, 0, 120, 1.0, 0);
    playsound3D(id2, mp3s/scene2-test2.mp3, 180, 0, 120, 1.0, 0);
  </action>
  ... pano ...
</scene>


dort wird am Start jeder Szene die "startsound" Action aufgerufen,
und dort werden die beiden Sounds gestartet,
da in beiden Szenen dieselben Sound IDs verwendet werden, wird immer
automatisch der alte Sound gestoppt und der neue stattdessen gespielt,

Schöne Grüße,
Klaus

3

Montag, 4. Mai 2009, 11:22

Hallo Klaus,
danke für deine Antwort, klingt logisch und so kann ich auch mit einem Button alle Sounds starten und stoppen.
Habs gleich ausprobiert, leider hör ich keinen Ton.

Ich häng hier die xml Datei mal dran:

Zitat

<krpano version="1.0.8" onstart="action(start);">
<include url="%SWFPATH%/panotour.xml"/>

<action name="start">
loadscene(scene1,null,NULL);
</action>

<plugin name="soundinterface" url="%SWFPATH%/plugins/soundinterface.swf" keep="true" />


<!-- ------------------------------------------------------- SZENE 1 -->
<scene name="scene1" onstart="action(startsound);">
<view hlookat="195" vlookat="0" fov="90" />

<image type="CUBESTRIP">
<cubestrip url="panos/1.jpg" />
</image>

<plugin name="radar" align="center" heading="30" parent="spot1" />
<plugin name="spotactive" align="center" parent="spot1"/>

<!-- Hotspots -->
<hotspot name="pano2"
url="%SWFPATH%/guibilder/hotspotarrow.swf"
ath="-150"
atv="3"
scale="1"
zoom="true"
onhover="showtext(Zum nächsten Standpunkt);"
onclick="
loadscene(scene2,null,null,BLEND(2));
wait(blend);
oninterrupt(action(lookinterrupt));"
/>

<!-- play sound playsound3D(id, mp3file, ath, atv, range (wieviel Grad soll die Musik gehen), volume, loops); -->
<action name="startsound">
playsound3D(id1, mp3s/test.mp3, 0, 0, 120, 1.0, 0);
playsound3D(id2, mp3s/test2.mp3, 180, 0, 120, 1.0, 0);
</action>

</scene>

</krpano>
Wenn ich statt der Action, folgendes einfüge, dann funktionierts noch, also die Pfade stimmen alle, muss irgendwas mit der Action sein *wacko*

Zitat

<plugin name="soundinterface" onloaded="playsound3D(id1, mp3s/test.mp3, 0, 0, 120, 1.0, 0);" />
Gruß Marc

4

Montag, 4. Mai 2009, 12:08

Hi, verwendest du die Version 1.0.8 build 2009-04-05 ?
das <scene onstart=""> gibt es erst seit dieser Version.

5

Montag, 4. Mai 2009, 12:14

Hallo,
verwende Version 1.0.8 beta 7 build 2009-04-08.
dürfte eigentlich die neueste sein?!

6

Montag, 4. Mai 2009, 12:24

Hi,

ja, müsste passen,
kommen irgendwelche Fehlermeldungen im Log?

um ganz sicher zu gehen das, dass Soundinterface Plugin bereits geladen ist,
könntest du die Szene anstatt im "onstart" erst nach im "onloaded" des Plugins laden,
z.B.

Quellcode

1
2
3
4
<krpano>
  ...
  <plugin name="soundinterface" ... onloaded="action(start);" />
  ...

7

Montag, 4. Mai 2009, 13:50

Hallo,
nun funktioniert es!
Hats da nun die Szene bereits geladen, bevor das Soundplugin erst geladen werden konnte?
Welche Log hast du gemeint?

Gruß

8

Dienstag, 5. Mai 2009, 12:05

Hallo Klaus,
eine Frage stellt sich mir noch, die ich nicht beantworten kann.
Und zwar, sagen wir es wird die erste Szene mit Sound geladen. Der Besucher stellt nun den Sound über den Button ab (stopallsounds();) und dann klickt er auf den Hotspot und kommt zur nächsten Szene, wo wiederum action(startsound); ausgeführt wird. Der Sound startet also wieder.
Das ist jedoch nicht gewollt, denn der Sound sollte dann natürlich allgemein stumm sein.
Gibts dazu eine Möglichkeit?

Gruß Marc

9

Mittwoch, 6. Mai 2009, 19:08

genial dieser Player :)
hab mich grad mit dem if() operator befasst und nun folgende Lösung gebildet:

Sound On/Off Button:

Zitat

<plugin name="soundoffbtn" keep="true" url="%SWFPATH%/guibilder/buttons/btn_soundon.jpg" align="bottom" visible="true" edge="center" y="29" x="+80" blendmode="screen" onhover="showtext(Sound ausschalten);" onover="set(blendmode,add);" onout="set(blendmode,screen);" onclick="set(plugin[soundoffbtn].visible,false);set(plugin[soundonbtn].visible,true);stopallsounds();" zorder="1" />

<plugin name="soundonbtn" keep="true" url="%SWFPATH%/guibilder/buttons/btn_soundoff.jpg" align="bottom" visible="false" edge="center" y="29" x="+80" blendmode="screen" onhover="showtext(Sound einschalten);" onover="set(blendmode,add);" onout="set(blendmode,screen);" onclick="set(plugin[soundonbtn].visible,false);set(plugin[soundoffbtn].visible,true);action(startsound);" zorder="1" />
und folgende Actions, die einmal überprüft, ob der soundoffbtn gerade aktiv ist oder nicht, und je nach dem dann die Actio für Sound on oder Sound off aufruft:

Zitat

<!-- play sound playsound3D(id, mp3file, ath, atv, range (wieviel Grad soll die Musik gehen), volume, loops); -->
<action name="startsound">
if(plugin[soundoffbtn].visible == true, action(soundon););
if(plugin[soundoffbtn].visible == false, action(soundoff););
</action>

<action name="soundon">
playsound3D(id1, mp3s/test1.mp3, 113, 0, 250, 0.4, 0);
playsound3D(id2, mp3s/test2.mp3, -45, 0, 160, 1.0, 0);
</action>

<action name="soundoff">
stopallsounds();
</action>
Kurz getestet und scheint zu funktionieren :-)

Ähnliche Themen