Ich hab meinen Soundpool zerstört

  • 7 Antworten
  • Neuester Beitrag
Diskutiere Ich hab meinen Soundpool zerstört im Android App Entwicklung im Bereich Betriebssysteme & Apps.
Jaiel

Jaiel

Experte
Hey ich hatte gerade ein biasschen mit der Play Methode der Soundpool Klasse rumgespielt und habe mal die Playback rate auf 2 erhöht.

Prompt gab es warn meldungen:

PHP:
06-17 19:02:04.929: W/AudioTrack(24226): AUDIO_OUTPUT_FLAG_FAST denied by client
Gut dann wieder zurück auf 1 gestellt jedoch ging es nciht mehr weg und es kamen jetzt folgende Fehlermeldungen:

PHP:
6-17 19:02:04.929: W/AudioTrack(24226): AUDIO_OUTPUT_FLAG_FAST denied by client
06-17 19:02:04.929: E/AudioTrack(24226): AudioFlinger could not create track, status: -12
06-17 19:02:04.929: E/SoundPool(24226): Error creating AudioTrack
Hier mein code, obwphl nciht nötig aber damit ihr fehler im Code ausschließen könnt:

PHP:
public void playButtonClick()
    {
        if(soundFXOn&&mAct.buttonClickLoaded)
        {
            mAct.soundPool.play(mAct.buttonClickID, 1f, 1f, 0, 0, 1.0f);
        }
    }
 
Jaiel

Jaiel

Experte
Das ist echt s**** ich finde auch gar nciht darüber im Netz .

Zum Beispiel was genau ist der Status -12?
 
Jaiel

Jaiel

Experte
Hier mal mein ganzer Code wo ich etwas mit Sounds mache (aber es liegt ganz klar an meinem rumspielen...ist das irgendwo intern etwas gesetzt worden dass Android meine App nciht mehr abspielt weil ich sie versucht habe zu "missbrauchen" wenn man es so sehen will):

PHP:
public void setUpSounds()
    {
        soundPool=new SoundPool(20,AudioManager.STREAM_MUSIC,0);
        soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener()
        {
            @Override
            public void onLoadComplete(SoundPool soundPool, int sampleId,int status)
            {
                if(sampleId==beepID)
                {
                    if(status==0)
                    {
                        beepLoaded=true;
                    }
                }
                else if(sampleId==buttonClickID)
                {
                    if(status==0)
                    {
                        buttonClickLoaded=true;
                    }
                }
                else if(sampleId==menuEnterID)
                {
                    if(status==0)
                    {
                        menuEnterLoaded=true;
                    }
                }
                else if(sampleId==menuExitID)
                {
                    if(status==0)
                    {
                        menuExitLoaded=true;
                    }
                }
            }
           
        });
        buttonClickID=soundPool.load(this,R.raw.buttonclick, 0);
        beepID=soundPool.load(this, R.raw.beep,0);
        menuEnterID=soundPool.load(this, R.raw.menuenter,0);
        menuExitID=soundPool.load(this, R.raw.menuexit,0);
    }
PHP:
/**
     * play the menu exit sound
     */
    public void playMenuExitSound()
    {
        if(soundFXOn&&mAct.menuExitLoaded)
        {
            mAct.soundPool.play(mAct.menuExitID, 0.2f, 0.2f, 0, 0, 1.0f);
        }
    }
   
   
    /**
     * play the menu entered sound
     */
    public void playMenuEnterSound()
    {
        if(soundFXOn&&mAct.menuEnterLoaded)
        {
            mAct.soundPool.play(mAct.menuEnterID, 0.2f, 0.2f, 0, 0, 1.0f);
        }
    }
   
   
    /**
     * plays the button click sound
     */
    public void playButtonClick()
    {
        if(soundFXOn&&mAct.buttonClickLoaded)
        {
            mAct.soundPool.play(mAct.buttonClickID, 1f, 1f, 0, 0, 1.0f);
        }
    }
 
Jaiel

Jaiel

Experte
Ich ahbe mein Note einfach mal neu gestartet und es läuft wieder....manchmal ist es wohl besser mal den Stecker zu ziehen und wieder einstecken lol
 
SavanTorian

SavanTorian

Ehrenmitglied
Ne blöde Frage, was wolltest Dun denn genau erreichen, der Sinn des auf "2"-Stellens ergibt sich mir hier nicht.... warum sollte ein Stück zwei mal wiederholt werden?
 
Jaiel

Jaiel

Experte
Die 2 hat ncihts mit Wiederholung zu tun sondern mit der Abspielgeschwindigkeit . Es ist die Rate in der die Sounddaten abgespielt werden. 2=doppelt so schnell 0.5=halbn so schnell.
 
SavanTorian

SavanTorian

Ehrenmitglied
Bringt mir trotzdem nix. Das Musikstück soll ja nicht per se gepitched werden.
 
Jaiel

Jaiel

Experte
Hallo,

Sry, ich versteh gerade nciht genau was deine Frage ist...