Eigener Lautstärkeregler

Startseite Foren Deutsches LiveCode-Forum Eigener Lautstärkeregler

Schlagwörter: 

Ansicht von 61 Antwort-Themen
  • Autor
    Beiträge
    • #18959
      akrages
      Teilnehmer

        Hallo und guten Abend.

        Gibt es eine Möglichkeit einen eigenen Lautstärkeregler in Livecode nachzubauen, um die Lautstärke der Wiedergabe von .wav Dateien damit zu steuern?

      • #18961
        Klaus Major
        Administrator

          Hallo akrages,

          klar, wir können so ziemlich alles mit LC programmieren, wenn wir wissen wie! 😀

          Hier ein kleiner Beispielstack aus meinen frühen Zeiten, der Dir einen Anhaltspunkt gibt:
          https://major-k.de/staxx/custom_slider1.livecode.zip

          Bei Fragen bitte fragen! 🙂

          Gruß

          Klaus

        • #18963
          akrages
          Teilnehmer

            Danke, funktioniert.

            Wie schaffe ich es nun, damit sich die Lautstärke gleichzeitig mit den Werten im fld “volume” ändert”

            Das steht momentan im Button “play”

          • #18964
            akrages
            Teilnehmer

              on mouseUp pMouseButton
              if the environment = “mobile” then
              if (mobileSoundOnChannel(“background”) is empty) or (mobileSoundOnChannel(“background”) is “could not find channel”) then
              put (specialFolderPath(“engine”) & “/sound/background.wav”) into tPath
              put “background” into tChannelName
              put “looping” into tType –> looping Sound wird wiederholt gespielt, bis gestoppt wird “now” Sound wird nur 1x abgespielt
              mobilePlaySoundOnChannel tPath, tChannelName, tType
              end if
              else
              play audioClip “background.wav” looping
              set the playloudness to the value of fld “volume”
              ##set the playLoudNess of player “background” to 50
              end if
              end mouseUp

            • #18965
              Klaus Major
              Administrator

                Sollte doch so funktionieren!?

                Aber ein paar Tips:
                1. Benutze -> specialfolderpath(“resources”) nicht “engine”!

                Denn nur auf der mobilen Platform ist “engine” zufällig identisch mit “resources”, aber eben nur da!

                Wenn Du also noch eine Version für Win oder Mac Desktop erstellen willst, müsstest Du das ändern, wenn Du “resources” nutzt, eben nicht! 🙂

                2. “the value” ist hier überflüssig, da im Feld “volume” doch sicher eine Zahl steht, oder?
                Also das hier reicht:

                ...
                set the playloudness to fld "volume"
                ...

                Aber was funktinoiert denn nicht bei Dir?
                Wird die Lautstärke nicht geändert?

                Du kannst (und solltest vielleicht auch?) mein Beispiel nicht 1:1 umsetzen, sondern damit direkt “the playloudness” setzen, statt wie im meinem Beispiel in ein Feld zu schteiben.
                Also einen echten Volumenregler, kiegst Du das hin?

                Gruß

                Klaus

              • #18967
                akrages
                Teilnehmer

                  Ich verstehe nicht so wirklich, wie du das meinst: (sondern damit direkt “the playloudness” setzen).
                  Und zu deiner Frage: Wenn ich den “Lautstärkeregler” bewegt habe, ändert sich die Lautstärke erst, wenn ich erneut den Button “play” anklicke.

                • #18968
                  Klaus Major
                  Administrator

                    Hi Akrages,

                    OK, in meinem Beispiel lege ich den neuen Wert für Playloundness in ein Feld mit dieser Zeile:

                    on mousemove x,y
                       if darfziehen then
                          switch
                             case x < the left of grc "rampe_horizontal"
                                ##set the loc of me to item 1 of the loc of me, the top of grc "rampe_horizontal"
                                set the loc of me to the left of grc "rampe_horizontal", item 2 of the loc of me
                                put 0 into fld "volume"
                                break
                             case x > the right of grc "rampe_horizontal"
                                ##set the loc of me to item 1 of the loc of me, the top of grc "rampe_horizontal" - tAusgleich
                                set the loc of me to the right of grc "rampe_horizontal", item 2 of the loc of me
                                put 100 into fld "volume"
                                break
                             default
                                set the loc of me to x, item 2 of the loc of me
                                put  round((x - the left of grc "rampe_horizontal")/(the width of grc "rampe_horizontal")*maxValue) into fld "volume"
                                break
                          end switch
                       end if
                    end mousemove

                    Wenn Du diesen “Umweg” nun umgehen und direkt die Lautstärke setzen möchtest, schreib es so:

                    on mousemove x,y
                       if darfziehen then
                          
                          ## Zuerst die neue Lautstärke ermitteln mit hilfe von etwas Geometrie :-)
                          switch
                             case x < the left of grc "rampe_horizontal"
                                ##set the loc of me to item 1 of the loc of me, the top of grc "rampe_horizontal"
                                set the loc of me to the left of grc "rampe_horizontal", item 2 of the loc of me
                                put 0 into neuelautstärke
                                break
                             case x > the right of grc "rampe_horizontal"
                                ##set the loc of me to item 1 of the loc of me, the top of grc "rampe_horizontal" - tAusgleich
                                set the loc of me to the right of grc "rampe_horizontal", item 2 of the loc of me
                                put 100 into neuelautstärke
                                break
                             default
                                set the loc of me to x, item 2 of the loc of me
                                put  round((x - the left of grc "rampe_horizontal")/(the width of grc "rampe_horizontal")*maxValue) into neuelautstärke
                                break
                          end switch
                          
                          ## Und nun erst setzen:
                          set the playloudness to neuelautstärke
                       end if
                    end mousemove

                    Gruß

                    Klaus

                  • #18970
                    akrages
                    Teilnehmer

                      Hi. das ist ja echt Klasse.
                      funzt prima.
                      Vielen Dank.
                      Kannst du mir das auch für die rampe_vertikal umbiegen?
                      irgendwie schaffe ich das nicht.
                      Die Banane “fliegt” immer waagrecht.

                    • #18971
                      Klaus Major
                      Administrator

                        Bitte schön:

                        on mousemove x,y
                           
                           ## Nur ausführen, wenn Maus "down" ist!
                           if darfziehen then
                              switch
                                 ## Wir sind schon unten, also bei 0 angekommen
                                 case y < the top of grc "rampe_vertikal" + tAusgleich
                                    set the loc of me to item 1 of the loc of me, (the top of grc "rampe_vertikal")
                                    put 0 into neuelautstärke
                                    break
                                    
                                    ## Wir sind oben, also bei 100 angekommen
                                 case y > the bottom of grc "rampe_vertikal"
                                    set the loc of me to item 1 of the loc of me, the bottom of grc "rampe_vertikal" - tAusgleich
                                    put 100 intoneuelautstärke
                                    break
                                    
                                    ## Irgendwo zwischen 0 und 100
                                    ## Ein einfacher Dreisatz!
                                 default
                                    set the loc of me to item 1 of the loc of me, y - tAusgleich
                                    put round((y - the top of grc "rampe_vertikal")/the height of grc "rampe_vertikal"*maxValue) into neuelautstärke
                                    break
                              end switch
                              set the playloudness to neuelautstärke
                           end if
                        end mousemove

                        Wichtig, versuche, das Skript zu verstehen, vielleicht zunächst einmal nur den Unterschied zum Skript mit dem Feld “volume”!

                        Und dann die eigentliche Logik mit der dazugehörigen Mathematik/Arithemtik. Ist ätzend, geht aber nicht ohne. 😀

                        Bei Fragen mach ich gerne den Erklärbär!

                      • #19020
                        akrages
                        Teilnehmer

                          Guten Abend,
                          ich habe jetzt eine kleine Anwendung geschrieben.
                          4 verschiedene “buttons” mit unterschiedlichen .wav files (eine davon läuft als Hintergrundsound im looping.
                          Außerdem gibt ea 4 Lautstärkeslider.
                          Was ich möchte ist jetzt folgendes:
                          Jeder Slider soll einen dieser .wav files in der Lautstärke regeln (und nur diesen)!

                          Mein Problem ist:
                          Innerhalb von Livecode funktionieren die Slieder, allerding jeder gleich, dh. ich kann mit jedem der 4 Sleider alle .wav´s in der Lautstärke regeln, was ja nicht gewünscht ist.

                          Und auf meinem Android Handy kann ich die Slider zwar bewegen undauch die Werte des Lautstärkepegels ändern sich, aber die Lautstärke leider nicht.

                          Geht das vielleicht gar nicht wie ich das vorhabe?

                        • #19021
                          Klaus Major
                          Administrator

                            Aha, Android mal wieder…

                            Da hast Du Pech gehabt, ein Blick ins Dictionary zeigt, daß “playloudness” nur auf Mac/Win/Linux und iOS unterstützt wird. Und ja, “playloudness” regelt die Gesamtlautstärke.

                            Wie genau spielst Du deine Sounds ab? Mit welchem Befehl?

                          • #19023
                            Klaus Major
                            Administrator

                              Ach, sorry, hast Du ja oben geschrieben.
                              OK, dann ändere nur die letzte Zeile in den Skripten:

                              ...
                                   end switch
                                   ## set the playloudness to neuelautstärke
                                   mobileSetSoundChannelVolume XXX,neueLautstärke
                                end if
                              end mousemove

                              XXX dabei bitte durch den Namen Deines(r) Channels ersetzen.

                            • #19025
                              akrages
                              Teilnehmer

                                Hallo.
                                Folgendes habe ich als Script in dem Button zum abspielen des Hintergrunsounds stehen:

                                on mouseUp
                                ##if the environment = “mobile” then
                                if (mobileSoundOnChannel(“background”) is empty) or (mobileSoundOnChannel(“background”) is “could not find channel”) then
                                put (specialFolderPath(“engine”) & “/background.wav”) into tPath
                                put “background” into tChannelName
                                put “looping” into tType
                                mobilePlaySoundOnChannel tPath, tChannelName, tType
                                else
                                mobileStopPlayingOnChannel “background”
                                end if
                                ##end if
                                end mouseUp

                                Die auskommentierten Zeilen deshalb, weil der Button sowohl zum Starten der Wiedergabe als auch zum Stoppen der Wiedergabe genutzt wird. Das funktioniert aber nur auf dem Android Handy, wenn diese zwei Zeilen auskommentiert sind.

                              • #19026
                                Klaus Major
                                Administrator

                                  specialfolderpath(“resources”), wie ich oben bereits schrieb! 😎

                                  Und was genau ist Deine Frage?
                                  Hast Du meine letzte Änderung im Skript ausprobiert?

                                  Hinweis:
                                  Ich besitze weder Handy noch Tablet o.ä., daher kann ich so etwas nicht testen und nur sagen, was die korrekte Systax für wasauchimmer ist.

                                • #19029
                                  akrages
                                  Teilnehmer

                                    Ganz schön ärgerlich, als ich endlich fertig war mit meiner Nachricht an dich und den Absendenknopf angeklickt habe, war die Nachricht weg und ich musste mich neu anmelden.
                                    Gibt es da ein Zeitfenster?

                                    • #19032
                                      Klaus Major
                                      Administrator

                                        Ganz schön ärgerlich, als ich endlich fertig war mit meiner Nachricht an dich und den Absendenknopf angeklickt habe, war die Nachricht weg und ich musste mich neu anmelden.
                                        Gibt es da ein Zeitfenster?

                                        Nicht, daß ich wüsste, aber die Forumsoftware ist leider extrem buggy… :-/

                                    • #19030
                                      akrages
                                      Teilnehmer

                                        Also ich habe dein Script nicht mehr sondern folgendes:

                                        local topValue,tScaleFactor,Bstop,Tstop,xLoc,cY,canMove,
                                        
                                        on mouseDown
                                           # Geben Sie Ihren Startwert (oben) ein
                                           put 100 into topValue
                                           # FÜGEN SIE IHREN ENDWERT (UNTEN) EIN
                                           put 1 into bottomValue
                                           
                                           # ERHALTEN SIE DEN OFFSET DES KLICKPUNKTES UND DES ZENTRUMS DES BTN
                                           # Dies verhindert, dass der BTN springt, wenn Sie mit dem Ziehen beginnen
                                           put (the mouseV - item 2 of the loc of me) into cY
                                           
                                           # Die Zahl, die am Ende der nächsten 3 Zeilen addiert oder subtrahiert wird
                                           # dient dazu, die Position des Schiebereglers so zu ändern, dass er an der gewünschten Stelle stoppt
                                           put (the bottom of image "Vsliderbar1")-(the height of me/2)+cY +7 into Bstop
                                           put (the top of image "Vsliderbar1")+(the height of me/2)+cY -27 into Tstop
                                           put item 1 of the loc of image "Vsliderbar1" +9 into xLoc
                                           put (bottomValue-topValue)/(Bstop-Tstop) into tScaleFactor
                                           put true into canMove
                                        end mouseDown
                                        
                                        on mouseMove x,y
                                           if not canMove then exit mouseMove
                                           put min(Bstop,max(Tstop,y)) into yLoc
                                           set loc of me to xLoc,yLoc-cY
                                           # Möglicherweise müssen Sie folgende Werte hinzufügen: xLoc und yLoc
                                           #, um den Wert fld an der gewünschten Stelle zu positionieren
                                           set the loc of fld "theValue_v1" to xLoc-40,yLoc-cY+10
                                           # Die folgende Zeile berechnet den Wert, den Sie möchten
                                           # wird auch für die tatsächliche Funktion des Schiebereglers verwendet
                                           put round((yLoc-Tstop)*tScaleFactor)+topValue into fld "theValue_v1"
                                           put round((yLoc-Tstop)*tScaleFactor)+topValue into noiseOne
                                           ##set the playloudness to noise1 
                                           mobileSetSoundChannelVolume noise1, "noiseOne" ##diese Zeile hinzugefügt
                                        end mouseMove
                                        
                                        on mouseUp
                                           put false into canMove
                                        end mouseUp
                                        
                                        on mouseRelease
                                           mouseUp
                                        end mouseRelease

                                        Und da kommt jetzt leider eine Fehlermeldung, wenn ich den Slider bewege.

                                      • #19031
                                        akrages
                                        Teilnehmer

                                          (Handler: can´t find handler)

                                        • #19034
                                          Klaus Major
                                          Administrator

                                            Bitte, bitte, bitte, pack Deine Skripte in die CODE Tags, damit man sie lesen kann, siehe oben, ich habe das mal eben gemacht. Skript markieren und oben auf CODE klicken.

                                            Der Handler “mobileSetSoundChannelVolume” klappt nur auf dem Handy, in der IDE gibt es diese Meldung. Das wird es wohl sein, da Du hier nicht zwischen MOBILE und sonstwas verzweigst.
                                            Aber genau das kannst und solltest Du hier machen, es reicht ja vor der Zeile “mobileSetSoundChannelVolume”:

                                            ...
                                              put round((yLoc-Tstop)*tScaleFactor)+topValue into noiseOne
                                              if the environment = "mobile" then
                                                ## mobileSetSoundChannelVolume noise1, "noiseOne" ##diese Zeile hinzugefügt
                                                ## Der Channel Name in Anführungszeichen, die Variable noiseOne aber nicht!
                                                mobileSetSoundChannelVolume "noise1", noiseOne
                                              else
                                                 set the playloudness to noiseone
                                              end if
                                            end mouseMove

                                            Wenn Du eine Variable in Anführungszeichen setzt, wird sie zu einem String!

                                            ...
                                            put 10 into meineVariable
                                            put meineVariable -> 10
                                            put "meineVariable" -> meineVariable
                                            ...

                                            Und das möchtest Du nicht. 🙂

                                            Kurze Frage:
                                            Dieses neue Skript verstehst Du nun besser als meins? 😎
                                            Meins ist erstens kürzer und zweitens nicht ganz so kompliziert.

                                          • #19036
                                            akrages
                                            Teilnehmer

                                              Ok, das mit den CODE Tags wusste ich nicht, danke.
                                              Ja ich denke es ist etwas leichter zu verstehen.

                                            • #19037
                                              akrages
                                              Teilnehmer

                                                Vielen, vielen Danke.
                                                Der Lautstärkeregler funktioniert jetzt in der funktioniert jetzt in der IDE und auf dem Handy.

                                              • #19038
                                                akrages
                                                Teilnehmer

                                                  Oh man. bisschen durcheinander der Satz. Ist wohl die Freude.

                                                • #19041
                                                  akrages
                                                  Teilnehmer

                                                    Guten Tag.
                                                    wie kann ich in dieses Script

                                                    on mouseUp
                                                       if (mobileSoundOnChannel("background") is empty) or (mobileSoundOnChannel("background") is "could not find channel") then
                                                          put (specialFolderPath("resources") & "/sound/background.wav") into tPath
                                                          put "background" into tChannelName
                                                          put "looping" into tType
                                                          mobilePlaySoundOnChannel tPath, tChannelName, tType
                                                       else
                                                          mobileStopPlayingOnChannel "background"
                                                       end if
                                                    end mouseUp

                                                    noch ein
                                                    if the environment = "mobile" then
                                                    einfügen?

                                                  • #19042
                                                    Klaus Major
                                                    Administrator

                                                      Mit der Tastatur? 😀

                                                      Na, halt aussen drumherum packen:

                                                      on mouseUp
                                                         if the environment = "mobile" then
                                                            if (mobileSoundOnChannel("background") is empty) or (mobileSoundOnChannel("background") is "could not find channel") then
                                                               put (specialFolderPath("resources") & "/sound/background.wav") into tPath
                                                               put "background" into tChannelName
                                                               put "looping" into tType
                                                               mobilePlaySoundOnChannel tPath, tChannelName, tType
                                                            else
                                                               mobileStopPlayingOnChannel "background"
                                                            end if
                                                         end if
                                                      end mouseUp

                                                      Hinweis:
                                                      Falls Du hier und in ähnlichen Fällen keinen ELSE Fall benötigst, schreibe ich das immer so, einfach der Übersichtlichkeit halber und um unübersichtliche IF…THEN Klauseln zu vermieden:

                                                      on mouseUp
                                                         if the environment <> "mobile" then
                                                           ## Dann einfach nicht weitermachen! :-)
                                                            exit mouseup
                                                         end if
                                                         
                                                         if (mobileSoundOnChannel("background") is empty) or (mobileSoundOnChannel("background") is "could not find channel") then
                                                            put (specialFolderPath("resources") & "/sound/background.wav") into tPath
                                                            put "background" into tChannelName
                                                            put "looping" into tType
                                                            mobilePlaySoundOnChannel tPath, tChannelName, tType
                                                         else
                                                            mobileStopPlayingOnChannel "background"
                                                         end if
                                                      end mouseUp
                                                    • #19044
                                                      akrages
                                                      Teilnehmer

                                                        Schade, funktioniert so leider nicht.
                                                        Das besondere an dem Button zur Wiedergabe ist, dass er auch zum stoppen der Wiedergabe dient.
                                                        Wenn ich jetzt mein Script mit einem
                                                        if the environment = "mobile" then
                                                        ergänze, dann funktioniert er nicht mehr.

                                                      • #19045
                                                        Klaus Major
                                                        Administrator

                                                          Also das hier funktioniert nicht auf dem Handy?

                                                          on mouseUp
                                                             if the environment = "mobile" then
                                                                if (mobileSoundOnChannel("background") is empty) or (mobileSoundOnChannel("background") is "could not find channel") then
                                                                   put (specialFolderPath("resources") & "/sound/background.wav") into tPath
                                                                   put "background" into tChannelName
                                                                   put "looping" into tType
                                                                   mobilePlaySoundOnChannel tPath, tChannelName, tType
                                                                else
                                                                   mobileStopPlayingOnChannel "background"
                                                                end if
                                                             end if
                                                          end mouseUp
                                                        • #19047
                                                          akrages
                                                          Teilnehmer

                                                            Doch auf dem Handy schon, aber nicht in der IDE
                                                            Da reagiert der Playbutton gar nicht.

                                                          • #19048
                                                            Klaus Major
                                                            Administrator

                                                              Was soll denn da bitteschön auch passieren?
                                                              Du hast doch nichts Entsprechendes geskriptet, also keinen ELSE Fall!

                                                              In der IDE “sieht” die Engine das hier in Deinem Skript:

                                                              on mouseup
                                                                 ## Nichts tun, wir sind ja nicht auf dem Händy, wie geil ist das denn? :-)
                                                                 ## Tu ma noch'n Bier!
                                                              end mouseup
                                                            • #19050
                                                              akrages
                                                              Teilnehmer

                                                                Eigentlich möchte ich ja nur, dass in der IDE das gleiche passiert, wie auf dem Handy.
                                                                Klicke ich auf den Playbutton, spielt der Hintergrundsound.
                                                                Klicke ich noch einmal auf den Playbutton dann stoppt die Hintergrundsound usw.
                                                                Das muss doch in der IDE genauso funktionieren.

                                                                • #19053
                                                                  Torsten
                                                                  Teilnehmer

                                                                    Hi,

                                                                    dann muss ich dich mal fragen, wozu Du das if environment = mobilebrauchst?

                                                                    Wenn die Funktionaliät in der IDE genauso sein soll wie auf dem Smartphone, brauchst Du keine Unterscheidung 😉

                                                                    LG
                                                                    Torsten

                                                                • #19051
                                                                  Klaus Major
                                                                  Administrator

                                                                    Wie spielst Du denn die Sound in der IDE ab?
                                                                    Ach ja, hast Du ja auch schon geschrieben, mit “play ac…”,
                                                                    damit kann aber leider nur EIN Sound gleichzeitig abgespielt werden.

                                                                    Benutze ein paar (unsichtbare) “Player” Objekte und setze deren “filename”.
                                                                    So können mehrere Sounds gleichzeitig abgespielt werden.

                                                                    Hinweis:
                                                                    specialfolderpath(“resources”), zu dem ich Dir nun wiederholt geraten habe, funktioniert auch in der IDE! Dort liefert es den Pfad zum Ordner mit dem aktuelle Stack drin.

                                                                  • #19055
                                                                    Klaus Major
                                                                    Administrator

                                                                      @Torsten,

                                                                      seit wann funktioniert das hier:

                                                                      on mouseUp  
                                                                         if (mobileSoundOnChannel("background") is empty) or (mobileSoundOnChannel("background") is "could not find channel") then
                                                                            put (specialFolderPath("resources") & "/sound/background.wav") into tPath
                                                                            put "background" into tChannelName
                                                                            put "looping" into tType
                                                                            mobilePlaySoundOnChannel tPath, tChannelName, tType
                                                                         else
                                                                            mobileStopPlayingOnChannel "background"
                                                                         end if
                                                                      end mouseUp

                                                                      auch auf dem Desktop/in der IDE?
                                                                      Bedenke, wir reden schon lange nicht mehr von dem allerersten Skript ganz oben!

                                                                      Gruß

                                                                      Klaus

                                                                    • #19064
                                                                      akrages
                                                                      Teilnehmer

                                                                        letzteres funktioniert nur auf dem Handy.
                                                                        In der IDE kommt beim Klick auf den Playbutton folgende Fehlermeldung:
                                                                        (Function: error in function handler) near “mobileSoundOnChannel”, char 11
                                                                        Deshalb ja die Unterscheidung mit:
                                                                        if the environment = "mobile" then

                                                                      • #19067
                                                                        Klaus Major
                                                                        Administrator

                                                                          Ich weiß das, und Torsten weiß das eigentlich auch! 😎
                                                                          Bitte lies meinen letzten Post noch einmal, anders wird es nicht gehen!

                                                                        • #19069
                                                                          akrages
                                                                          Teilnehmer

                                                                            Die Fehlermeldung kommt für diese Zeile:
                                                                            if (mobileSoundOnChannel("background") is empty) or (mobileSoundOnChannel("background") is "could not find channel") then

                                                                          • #19070
                                                                            Klaus Major
                                                                            Administrator

                                                                              Noch einmal, diese ganzen MOBILExxxx Befehle funktionieren nur auf dem Handy, in der IDE gibt es sofort (bein ersten Vorkommen wie hier) einen ERROR.

                                                                              Ist total bescheuert, aber wir müssen damit leben, also komm bitte drüber hinweg. 😀

                                                                            • #19072
                                                                              akrages
                                                                              Teilnehmer

                                                                                Ist mir schon klar.
                                                                                ich dachte halt, mit einem zusätzliche else das Problem lösen zu können.
                                                                                Trotzdem danke.

                                                                              • #19073
                                                                                Klaus Major
                                                                                Administrator

                                                                                  Kannst Du auch, aber dann musst Du auch das Richtige skripten für den ELSE Fall! 😎
                                                                                  Oder überhaupt erst einmal was.

                                                                                • #19075
                                                                                  Torsten
                                                                                  Teilnehmer

                                                                                    @Klaus: sorry für den Kommentar meinerseits, ichn hatte den ganzen Thread noch nicht gelesen.

                                                                                    Wenn ich das richtig verstehe, hat er doch eigentlich alles schon am Anfang richtig gemacht, um zwischen mobile und IDE zu unterscheiden:

                                                                                    on mouseUp pMouseButton
                                                                                       if the environment = "mobile" then
                                                                                          if (mobileSoundOnChannel("background") is empty) or (mobileSoundOnChannel("background") is "could not find channel") then
                                                                                             put (specialFolderPath("engine") & "/sound/background.wav") into tPath
                                                                                             put "background" into tChannelName
                                                                                             put "looping" into tType --> looping Sound wird wiederholt gespielt, bis gestoppt wird "now" Sound wird nur 1x abgespielt
                                                                                             mobilePlaySoundOnChannel tPath, tChannelName, tType
                                                                                          end if
                                                                                       else
                                                                                          play audioClip "background.wav" looping
                                                                                          set the playloudness to the value of fld "volume"
                                                                                          ##set the playLoudNess of player "background" to 50
                                                                                       end if
                                                                                    end mouseUp

                                                                                    Das Schema müsste wieder eingebaut werden, oder?

                                                                                    LG
                                                                                    Torsten

                                                                                  • #19077
                                                                                    Klaus Major
                                                                                    Administrator

                                                                                      Im Prinzip hast Du recht, aber mit “play ac xyz” wird das nichts, hier müssen PLAYER Objekte ran!

                                                                                      • #19081
                                                                                        Torsten
                                                                                        Teilnehmer

                                                                                          Stimmt: play erlaubt nur eine Audiodatei abzuspielen:
                                                                                          https://livecode.fandom.com/de/wiki/Play

                                                                                          “Wenn Sie einen Audioclip abspielen, während ein anderer spielt, wird der erste Audioclip gestoppt und eine playStopped-Nachricht wird an die aktuelle Karte gesendet. Sie können nicht gleichzeitig zwei Sounds abspielen.”

                                                                                      • #19083
                                                                                        Klaus Major
                                                                                        Administrator

                                                                                          SACHICHDOCH! 😀

                                                                                        • #19103
                                                                                          akrages
                                                                                          Teilnehmer

                                                                                            Guten Abend,
                                                                                            ist es möglich, festzustellen, ob ein Soundkanal schon spielt?
                                                                                            Natürlich für Android.
                                                                                            Also sowas wie if the sound is done then für IOS

                                                                                            Ich möchte gerne den Hintergrundsound über den Slider für die Lautstärke starten und zwar dann, wenn er noch nicht läuft und wenn der Wert im Field für die Lautstärkeanzeige >1 ist.
                                                                                            Andernfalls soll über denSlider nur die Lautstärke geregelt werden.

                                                                                            Wie müsste also so eine if Abfrage aussehen?
                                                                                            Kann da jemand helfen”

                                                                                          • #19104
                                                                                            Klaus Major
                                                                                            Administrator

                                                                                              Das müsste das hier sein:

                                                                                              ...
                                                                                              put mobileSoundChannelStatus("background") into sound_ist_am_spielen
                                                                                              ## Nun musst Du checken, welchen Wert sound_ist_am_spielen hat.
                                                                                              ...

                                                                                              Mögliche Werte:
                                                                                              stopped # Kein Sound im gewünschten Kanal
                                                                                              paused # Sound im Kanal, aber pausiert.
                                                                                              playing # Sollte klar sein

                                                                                            • #19133
                                                                                              akrages
                                                                                              Teilnehmer

                                                                                                Hallo,
                                                                                                ich bin gerade dabei deinen letzten Tip in den Slider für die Lautstärke zu integrieren, aber irgendwie funktioniert der Regler nicht so wie er soll.
                                                                                                Sobald ich den Regler berühre, startet der Hintergrundsound und laässt sich dann auch nicht mehr regeln.
                                                                                                hier mal der Ausschnit des Scriptes für den Slider mit Ergänzung.

                                                                                                on mouseMove x,y
                                                                                                   if not canMove then exit mouseMove
                                                                                                   put min(Bstop,max(Tstop,y)) into yLoc
                                                                                                   set loc of me to xLoc,yLoc-cY
                                                                                                   # you may need to add values to following: xLoc and yLoc
                                                                                                   # to position the value fld where you want
                                                                                                   # Möglicherweise müssen Sie folgende Werte hinzufügen: xLoc und yLoc
                                                                                                   #, um den Wert fld an der gewünschten Stelle zu positionieren
                                                                                                   set the loc of fld "theValue_v4" to xLoc-40,yLoc-cY+10
                                                                                                   # The following line calculates the value which you would want to
                                                                                                   # also put into use for the actual functioning of the slider
                                                                                                   # Die folgende Zeile berechnet den Wert, den Sie möchten
                                                                                                   # wird auch für die tatsächliche Funktion des Schiebereglers verwendet
                                                                                                   put round((yLoc-Tstop)*tScaleFactor)+topValue into fld "theValue_v4"
                                                                                                   put round((yLoc-Tstop)*tScaleFactor)+topValue into sBackground ##diese Zeile hinzugefügt
                                                                                                   if the environment = "mobile" then
                                                                                                      ## mobileSetSoundChannelVolume noise1, "noiseOne" ##diese Zeile hinzugefügt
                                                                                                      ## Der Channel Name in Anführungszeichen, die Variable noiseOne aber nicht!
                                                                                                      
                                                                                                      if (mobileSoundOnChannel("background") is empty) or (mobileSoundOnChannel("background") is "could not find channel") then
                                                                                                         put (specialFolderPath("resources") & "/sound/background.wav") into tPath
                                                                                                         put "background" into tChannelName
                                                                                                         put "looping" into tType
                                                                                                         mobileSetSoundChannelVolume "background", sBackground ##diese Zeile hinzugefügt
                                                                                                         if the value of Field "theValue_v4" >2 then
                                                                                                            
                                                                                                            mobilePlaySoundOnChannel tPath, tChannelName, tType
                                                                                                            
                                                                                                            if the value of Field "theValue_v4" <2 then
                                                                                                               mobileStopPlayingOnChannel "background"
                                                                                                            end if
                                                                                                         end if
                                                                                                      end if
                                                                                                   else
                                                                                                      set the playloudness to sBackground
                                                                                                   end if
                                                                                                end mouseMove
                                                                                              • #19134
                                                                                                Klaus Major
                                                                                                Administrator

                                                                                                  Bedenke, “mousemove” wird STÄNDIG gesendet, wenn die Maus sich bewegt!
                                                                                                  Also wird hier der Sound ständig gestartet und irgendwann explodiert Dein Handy! 😀

                                                                                                  Mach das mit dem Background-Sound Check doch “on mousedown”, da sollte es besser funktionieren.

                                                                                                  Hinweis -> the value of fld xyz
                                                                                                  ist überflüssig, das hier reicht:
                                                                                                  if fld “theValue_v4” > 2

                                                                                                • #19136
                                                                                                  akrages
                                                                                                  Teilnehmer

                                                                                                    Bingo!
                                                                                                    Aber der Sound stoppt noch nicht bei Level 1.
                                                                                                    Müsste er doch aber laut dem Script oder?

                                                                                                  • #19137
                                                                                                    akrages
                                                                                                    Teilnehmer

                                                                                                      würde statt
                                                                                                      if the value of Field "theValue_v4" <2 then
                                                                                                      auch ein
                                                                                                      else
                                                                                                      reichen, oder verändert dies das gesamte Script?

                                                                                                    • #19138
                                                                                                      akrages
                                                                                                      Teilnehmer

                                                                                                        Gerade ausprobiert.
                                                                                                        Ändert leider nichts.
                                                                                                        Der Ton ist auf Level 1 noch immer ganz leise zu hören.

                                                                                                      • #19139
                                                                                                        Klaus Major
                                                                                                        Administrator

                                                                                                          Das alles erscheint mir igendwie viel zu kompliziert… 😀

                                                                                                          Bitte poste mal Dein komplettes Skript mit mousedown und allem,
                                                                                                          ich habe morgen etwas Zeit, dann schau ich mir das mal in Ruhe an.

                                                                                                          Der Ton ist auf Level 1 noch immer ganz leise zu hören.

                                                                                                          Mit “Level 1” meinst Du “Lautstärke auf 1 gestellt”?

                                                                                                        • #19142
                                                                                                          akrages
                                                                                                          Teilnehmer

                                                                                                            Ja Level1 bedeutet, Lautstärke auf 1 gestellt.

                                                                                                          • #19143
                                                                                                            akrages
                                                                                                            Teilnehmer

                                                                                                              Und hier der Script aus dem Button SliderC4:

                                                                                                              local topValue,tScaleFactor,Bstop,Tstop,xLoc,cY,canMove,
                                                                                                              
                                                                                                              on mouseDown
                                                                                                                 # Geben Sie Ihren Startwert (oben) ein
                                                                                                                 put 100 into topValue
                                                                                                                 # FÜGEN SIE IHREN ENDWERT (UNTEN) EIN
                                                                                                                 put 1 into bottomValue
                                                                                                                 
                                                                                                                 # ERHALTEN SIE DEN OFFSET DES KLICKPUNKTES UND DES ZENTRUMS DES BTN
                                                                                                                 # Dies verhindert, dass der BTN springt, wenn Sie mit dem Ziehen beginnen
                                                                                                                 put (the mouseV - item 2 of the loc of me) into cY
                                                                                                                 
                                                                                                                 # Die Zahl, die am Ende der nächsten 3 Zeilen addiert oder subtrahiert wird
                                                                                                                 # dient dazu, die Position des Schiebereglers so zu ändern, dass er an der gewünschten Stelle stoppt
                                                                                                                 put (the bottom of image "Vsliderbar4")-(the height of me/2)+cY +7 into Bstop
                                                                                                                 put (the top of image "Vsliderbar4")+(the height of me/2)+cY -27 into Tstop
                                                                                                                 put item 1 of the loc of image "Vsliderbar4" +9 into xLoc
                                                                                                                 put (bottomValue-topValue)/(Bstop-Tstop) into tScaleFactor
                                                                                                                 put true into canMove
                                                                                                                 
                                                                                                                 if the environment = "mobile" then
                                                                                                                    ## mobileSetSoundChannelVolume noise1, "noiseOne" ##diese Zeile hinzugefügt
                                                                                                                    ## Der Channel Name in Anführungszeichen, die Variable noiseOne aber nicht!
                                                                                                                    
                                                                                                                    if (mobileSoundOnChannel("background") is empty) or (mobileSoundOnChannel("background") is "could not find channel") then
                                                                                                                       put (specialFolderPath("resources") & "/sound/background.wav") into tPath
                                                                                                                       put "background" into tChannelName
                                                                                                                       put "looping" into tType
                                                                                                                       mobileSetSoundChannelVolume "background", sBackground ##diese Zeile hinzugefügt
                                                                                                                    end if
                                                                                                                    
                                                                                                                    if fld "theValue_v4" > 2 then
                                                                                                                       mobilePlaySoundOnChannel tPath, tChannelName, tType
                                                                                                                       
                                                                                                                       if fld "theValue_v4" < 2  then
                                                                                                                        mobileStopSoundOnChannel tPath, tChannelName, tType
                                                                                                                       end if
                                                                                                                    end if
                                                                                                                 else
                                                                                                                    set the playloudness to sBackground
                                                                                                                 end if
                                                                                                              end mouseDown
                                                                                                              
                                                                                                              on mouseMove x,y
                                                                                                                 if not canMove then exit mouseMove
                                                                                                                 put min(Bstop,max(Tstop,y)) into yLoc
                                                                                                                 set loc of me to xLoc,yLoc-cY
                                                                                                                 # Möglicherweise müssen Sie folgende Werte hinzufügen: xLoc und yLoc
                                                                                                                 #, um den Wert fld an der gewünschten Stelle zu positionieren
                                                                                                                 set the loc of fld "theValue_v4" to xLoc-40,yLoc-cY+10
                                                                                                                 # Die folgende Zeile berechnet den Wert, den Sie möchten
                                                                                                                 # wird auch für die tatsächliche Funktion des Schiebereglers verwendet
                                                                                                                 put round((yLoc-Tstop)*tScaleFactor)+topValue into fld "theValue_v4"
                                                                                                                 put round((yLoc-Tstop)*tScaleFactor)+topValue into sBackground ##diese Zeile hinzugefügt
                                                                                                                 if the environment = "mobile" then
                                                                                                                    ## Der Channel Name in Anführungszeichen, die Variable noiseOne aber nicht!
                                                                                                                    mobileSetSoundChannelVolume "background", sBackground ##diese Zeile hinzugefügt
                                                                                                                 else
                                                                                                                    set the playloudness to sBackground
                                                                                                                 end if
                                                                                                              end mouseMove
                                                                                                              
                                                                                                              on mouseUp
                                                                                                                 put false into canMove
                                                                                                              end mouseUp
                                                                                                              
                                                                                                              on mouseRelease
                                                                                                                 mouseUp
                                                                                                              end mouseRelease
                                                                                                            • #19146
                                                                                                              Klaus Major
                                                                                                              Administrator

                                                                                                                OK, ein paar Fragen:
                                                                                                                1. Das hier:

                                                                                                                if (mobileSoundOnChannel(“background”) is empty) or (mobileSoundOnChannel(“background”) is “could not find channel”)

                                                                                                                ist doch schon ein Grund den Sound zu starten, oder nicht?
                                                                                                                2. Was steht in Feld “theValue_v4” und warum? 🙂
                                                                                                                3. Was passiert, wenn im Feld genau 2 drinsteht?
                                                                                                                Dieser Fall wird nicht abgedeckt!

                                                                                                              • #19148
                                                                                                                akrages
                                                                                                                Teilnehmer

                                                                                                                  Hallo,
                                                                                                                  Zur ersten Frage: Als einen Aufruf zum Starten des Sounds habe ich diese if-Abfrage noch gar nicht interpretiert.
                                                                                                                  Zur zweiten Frage: In “theValueV4” steht der Lautstärkepegel (1-100) je nach Slider-Stellung.
                                                                                                                  Zur dritten Frage: Es passiert das gleiche, dass bei dem Wert 1 passiert. Gar nichts.

                                                                                                                • #19149
                                                                                                                  akrages
                                                                                                                  Teilnehmer

                                                                                                                    Also zur ersten Frage noch folgendes:
                                                                                                                    Eigentlich wir ja nur geschaut ob es einen Channel “background” gibt, und ob der mit einem Soundfile belegt ist und wenn nicht, dann wird er angelegt und mit einem Soundfile belegt, sowie der Wert für die Lautstärke mit angegeben.
                                                                                                                    Das Soundfile selbst wird doch erst mit dem Aufruf: mobilePlaySoundOnChannel tPath, tChannelName, tType gestartet.
                                                                                                                    Oder interpretiere ich das falsch?

                                                                                                                    Außerdem ist mir aufgefallen, dass der Sound erst startet, wenn ich ein zweites mal den Slider berühre.
                                                                                                                    Also bei einem zweiten mouseDown.

                                                                                                                  • #19150
                                                                                                                    Klaus Major
                                                                                                                    Administrator

                                                                                                                      Meiner Meinung nach, sollte so die Logik stimmen.
                                                                                                                      Bitte mal ausprobieren.

                                                                                                                      on mouseDown
                                                                                                                         # Geben Sie Ihren Startwert (oben) ein
                                                                                                                         put 100 into topValue
                                                                                                                         # FÜGEN SIE IHREN ENDWERT (UNTEN) EIN
                                                                                                                         put 1 into bottomValue
                                                                                                                         
                                                                                                                         # ERHALTEN SIE DEN OFFSET DES KLICKPUNKTES UND DES ZENTRUMS DES BTN
                                                                                                                         # Dies verhindert, dass der BTN springt, wenn Sie mit dem Ziehen beginnen
                                                                                                                         put (the mouseV - item 2 of the loc of me) into cY
                                                                                                                         
                                                                                                                         # Die Zahl, die am Ende der nächsten 3 Zeilen addiert oder subtrahiert wird
                                                                                                                         # dient dazu, die Position des Schiebereglers so zu ändern, dass er an der gewünschten Stelle stoppt
                                                                                                                         put (the bottom of image "Vsliderbar4")-(the height of me/2)+cY +7 into Bstop
                                                                                                                         put (the top of image "Vsliderbar4")+(the height of me/2)+cY -27 into Tstop
                                                                                                                         put item 1 of the loc of image "Vsliderbar4" +9 into xLoc
                                                                                                                         put (bottomValue-topValue)/(Bstop-Tstop) into tScaleFactor
                                                                                                                         put true into canMove
                                                                                                                         
                                                                                                                         ## sBackground ist keine LOKALE Variable, daher hier noch nicht bekannt 
                                                                                                                         ## und es wird somit einen ERROR geben!
                                                                                                                         ## Daher:
                                                                                                                         put fld "theValue_v4" into tLautstärke
                                                                                                                         ## Sofern ich Dich richtig verstanden habe.
                                                                                                                         
                                                                                                                         ## Verschachtelte IF THEN vermeiden
                                                                                                                         if the environment <> "mobile" then
                                                                                                                            set the playloudness to tLautstärke
                                                                                                                            
                                                                                                                            ## Auf dem Desktop oder in der IDE sind wir jetzt fertig!
                                                                                                                            exit mousedown
                                                                                                                         end if
                                                                                                                         
                                                                                                                         ## Initialisierung des Sounds:
                                                                                                                         put (specialFolderPath("resources") & "/sound/background.wav") into tPath
                                                                                                                         put "background" into tChannelName
                                                                                                                         put "looping" into tType
                                                                                                                         
                                                                                                                         ## Warum nicht 0 nehmen, wenn bei 1 ja noch etas zu hören ist?
                                                                                                                         if fld "theValue_v4" > 0 then
                                                                                                                      
                                                                                                                            ## Nur starten, wenn er nicht schon läuft:
                                                                                                                            if mobileSoundChannelStatus("background") <> "playing" then
                                                                                                                              mobilePlaySoundOnChannel tPath, tChannelName, tType
                                                                                                                            end if
                                                                                                                         else
                                                                                                                            mobileStopSoundOnChannel tPath, tChannelName, tType
                                                                                                                         end if
                                                                                                                      end mouseDown
                                                                                                                    • #19152
                                                                                                                      akrages
                                                                                                                      Teilnehmer

                                                                                                                        So, gerade ausprobiert.
                                                                                                                        Folgendes Ergebnis:
                                                                                                                        App startet, Sound ist off
                                                                                                                        jetzt bewrühre ich den Slider und bewege ihn von 1 (kleinester Wert) aufwärts.
                                                                                                                        Ergebnis: Sound ist diesmal sofort auf On, also zu hören und lässt sich auch in der Lautstärke regeln.
                                                                                                                        Lediglich wenn ich ihn wieder herunterregle ist er auf Level 1 immer noch leise zu hören.

                                                                                                                      • #19153
                                                                                                                        akrages
                                                                                                                        Teilnehmer

                                                                                                                          Obiges gilt für das Handy.

                                                                                                                          In der IDE, funktioniert der SliderC4 jetzt gar nicht.
                                                                                                                          D.h. Ich kann ihn zwar bewegen und der Wert im Feld “theValue_v4” änert sich aber es ist nichts zu hören.

                                                                                                                        • #19154
                                                                                                                          Klaus Major
                                                                                                                          Administrator

                                                                                                                            In Deinem Skript steht nirgendwo ein Befehl, der den Sound überhaupt in der IDE abspielt!
                                                                                                                            Weder mit “play ac xyz” noch mit einem Player Objekt, Du setzt da nur die Lautstärke!?

                                                                                                                            Oder hab ich was verpasst!

                                                                                                                          • #19156
                                                                                                                            akrages
                                                                                                                            Teilnehmer

                                                                                                                              Stimmt.
                                                                                                                              Habe ich jetz eingefügt.

                                                                                                                            • #19157
                                                                                                                              Klaus Major
                                                                                                                              Administrator

                                                                                                                                Und?

                                                                                                                                Lass Dir doch nicht alles aus der Nase ziehen! 😀

                                                                                                                              • #19159
                                                                                                                                akrages
                                                                                                                                Teilnehmer

                                                                                                                                  Sorry, aber ich bin echt am verzweifeln.
                                                                                                                                  Also folgende Änderung im Script:
                                                                                                                                  von ##`Verschachtelte IF THEN vermeiden
                                                                                                                                  if the environment <> “mobile” then
                                                                                                                                  set the playloudness to tLautstärke`
                                                                                                                                  nach ##`Verschachtelte IF THEN vermeiden
                                                                                                                                  if the environment <> “mobile” then
                                                                                                                                  play audioClip “background.wav” ##sBackground
                                                                                                                                  set the playloudness to sBackground`

                                                                                                                                  Ergebnis: In der IDE Ton ist nur zu hören, nachdem ich ein zweites mal auf den Slider klicke.
                                                                                                                                  Move ich den Slider erneut, muss ich nochmal auf ihn klicken, damit sich die Lautstärke ändert usw.

                                                                                                                                  Und am Mobile ist nach klick auf den Slider, der Sound auf voller Lautstärke und lässt sich nicht regeln. ??????????

                                                                                                                                • #19160
                                                                                                                                  Klaus Major
                                                                                                                                  Administrator

                                                                                                                                    Bitte noch einmal Dein ganzes Skript posten!
                                                                                                                                    Aber wie gesagt, mit “play ac xyz” kannst Du nur EINEN Sound zu selben Zeit abspielen in der IDE!

                                                                                                                                    Und:

                                                                                                                                    ...
                                                                                                                                    if the environment <> "mobile" then
                                                                                                                                    play audioClip "background.wav" ##sBackground
                                                                                                                                    
                                                                                                                                    ## sBackground existiert nicht im "mousedown" Handler, bitte lies doch meine Kommentare!
                                                                                                                                    set the playloudness to sBackground
                                                                                                                                    ...
                                                                                                                                  • #19164
                                                                                                                                    akrages
                                                                                                                                    Teilnehmer

                                                                                                                                      Die Lese ich.
                                                                                                                                      Hab nur aus lauter Verzweiflung dein tLautstärke mal probehalber wieder in sBackground geändert, weil es ja im mouseMove noch so angegeben ist/war, (wurde von mir jetzt auch in tLautstärke geändert) und auch bisher bei mir immer so geheißen hat.
                                                                                                                                      Und ja, ich weiß, dass ich in der IDE nur einen Sound zur selben Zeit abspielen kann.
                                                                                                                                      Es spielt ja auch sonst keine zweiter Sound.

                                                                                                                                      Hier nun nochmal das geamte Script vom “SliderC4”

                                                                                                                                      local topValue,tScaleFactor,Bstop,Tstop,xLoc,cY,canMove,
                                                                                                                                      
                                                                                                                                      on mouseDown
                                                                                                                                         # Geben Sie Ihren Startwert (oben) ein
                                                                                                                                         put 100 into topValue
                                                                                                                                         # FÜGEN SIE IHREN ENDWERT (UNTEN) EIN
                                                                                                                                         put 1 into bottomValue
                                                                                                                                         
                                                                                                                                         # ERHALTEN SIE DEN OFFSET DES KLICKPUNKTES UND DES ZENTRUMS DES BTN
                                                                                                                                         # Dies verhindert, dass der BTN springt, wenn Sie mit dem Ziehen beginnen
                                                                                                                                         put (the mouseV - item 2 of the loc of me) into cY
                                                                                                                                         
                                                                                                                                         # Die Zahl, die am Ende der nächsten 3 Zeilen addiert oder subtrahiert wird
                                                                                                                                         # dient dazu, die Position des Schiebereglers so zu ändern, dass er an der gewünschten Stelle stoppt
                                                                                                                                         put (the bottom of image "Vsliderbar4")-(the height of me/2)+cY +7 into Bstop
                                                                                                                                         put (the top of image "Vsliderbar4")+(the height of me/2)+cY -27 into Tstop
                                                                                                                                         put item 1 of the loc of image "Vsliderbar4" +9 into xLoc
                                                                                                                                         put (bottomValue-topValue)/(Bstop-Tstop) into tScaleFactor
                                                                                                                                         put true into canMove
                                                                                                                                         
                                                                                                                                         ## sBackground ist keine LOKALE Variable, daher hier noch nicht bekannt 
                                                                                                                                         ## und es wird somit einen ERROR geben!
                                                                                                                                         ## Daher:
                                                                                                                                         put fld "theValue_v4" into tLautstärke
                                                                                                                                         ## Sofern ich Dich richtig verstanden habe.
                                                                                                                                         
                                                                                                                                         ## Verschachtelte IF THEN vermeiden
                                                                                                                                         if the environment <> "mobile" then
                                                                                                                                            set the playloudness to tLautstärke
                                                                                                                                            
                                                                                                                                            ## Auf dem Desktop oder in der IDE sind wir jetzt fertig!
                                                                                                                                            exit mousedown
                                                                                                                                         end if
                                                                                                                                         
                                                                                                                                         ## Initialisierung des Sounds:
                                                                                                                                         put (specialFolderPath("resources") & "/sound/background.wav") into tPath
                                                                                                                                         put "background" into tChannelName
                                                                                                                                         put "looping" into tType
                                                                                                                                         
                                                                                                                                         ## Warum nicht 0 nehmen, wenn bei 1 ja noch etas zu hören ist?
                                                                                                                                         if fld "theValue_v4" > 0 then
                                                                                                                                            
                                                                                                                                            ## Nur starten, wenn er nicht schon läuft:
                                                                                                                                            if mobileSoundChannelStatus("background") <> "playing" then
                                                                                                                                               mobilePlaySoundOnChannel tPath, tChannelName, tType
                                                                                                                                            end if
                                                                                                                                         else
                                                                                                                                            mobileStopSoundOnChannel tPath, tChannelName, tType
                                                                                                                                         end if
                                                                                                                                      end mouseDown
                                                                                                                                      
                                                                                                                                      on mouseMove x,y
                                                                                                                                         if not canMove then exit mouseMove
                                                                                                                                         put min(Bstop,max(Tstop,y)) into yLoc
                                                                                                                                         set loc of me to xLoc,yLoc-cY
                                                                                                                                         # Möglicherweise müssen Sie folgende Werte hinzufügen: xLoc und yLoc
                                                                                                                                         #, um den Wert fld an der gewünschten Stelle zu positionieren
                                                                                                                                         set the loc of fld "theValue_v4" to xLoc-40,yLoc-cY+10
                                                                                                                                         # Die folgende Zeile berechnet den Wert, den Sie möchten
                                                                                                                                         # wird auch für die tatsächliche Funktion des Schiebereglers verwendet
                                                                                                                                         put round((yLoc-Tstop)*tScaleFactor)+topValue into fld "theValue_v4"
                                                                                                                                         put "theValue_v4" into tLautstärke ##diese Zeile hinzugefügt
                                                                                                                                         ##if the environment = "mobile" then
                                                                                                                                            #### Der Channel Name in Anführungszeichen, die Variable noiseOne aber nicht!
                                                                                                                                            ##mobileSetSoundChannelVolume "background", sBackground ##diese Zeile hinzugefügt
                                                                                                                                         ##else
                                                                                                                                            ##put fld "theValue_v4" into tLautstärke
                                                                                                                                            ##set the playloudness to tLautstärke ##sBackground
                                                                                                                                         ##end if
                                                                                                                                      end mouseMove
                                                                                                                                      
                                                                                                                                      on mouseUp
                                                                                                                                         put false into canMove
                                                                                                                                         ##if fld "theValue_v4" <= 2  then
                                                                                                                                            ##stop playing audioClip "background.wav"
                                                                                                                                         ##else
                                                                                                                                            ####if fld "theValue_v4" >= 3  then
                                                                                                                                            ##play audioClip "background.wav" sBackground
                                                                                                                                         ##end if
                                                                                                                                         ####end if
                                                                                                                                      end mouseUp
                                                                                                                                      
                                                                                                                                      on mouseRelease
                                                                                                                                         mouseUp
                                                                                                                                      end mouseRelease
                                                                                                                                    • #19189
                                                                                                                                      akrages
                                                                                                                                      Teilnehmer

                                                                                                                                        Hallo.
                                                                                                                                        Ich habe es geschafft. (Jubel)
                                                                                                                                        Der Lautstärkeregler arbeitet so wie er soll.
                                                                                                                                        Liegt der Level bei 1, dann stoppt die Wiedergabe.
                                                                                                                                        Liegt der Level zwischen > 0 und < 2 dann startet die Wiedergabe.

                                                                                                                                        Erreicht habe ich dieses Ergebnis, durch folgende Herangehensweise.
                                                                                                                                        Zunächst zwei Button erstellt, einer zur Wiedergabe und einer für Stop.
                                                                                                                                        In jeden dieser Button den entsprechenden on mouseUp – Befehl eingefügt und als diese beiden Button dann funktionierten, war es nur noch ein Kinderspiel. Zur Wiedergabe nutze ich den on mouseDown – Befehl und zum Stoppen den on mouseUp – Befehl.

                                                                                                                                        Trotzdem vielen Dank für deine Hilfe.

                                                                                                                                    Ansicht von 61 Antwort-Themen
                                                                                                                                    • Du musst angemeldet sein, um auf dieses Thema antworten zu können.