SoundPool Warnungen

Hey Leute :slight_smile:

Arbeite gerade immer noch fleißig an meinem Spiel, bin aber jetzt auf nervige Warnungen in der Konsole gestoßen…

Ich arbeite mit einem SoundPool um verschiedene Sounds in meinem Spiel gleichzeitig und effektiv abspielen zu können.
Allerdings erhalte ich bei dem Abspielen von Sounds ständig eine Warnung in der Konsole (LogCat):
07-27 20:22:05.780: W/AudioTrack(21614): AUDIO_OUTPUT_FLAG_FAST denied by client
Der Sound wird zwar problemlos (augenscheinlich) ausgeführt allerdings stört mich die Warnung. Und ich finde einfach keine Erklärung für ihre Ursache! :open_mouth:

Hier der relevante Teil meines Codes:
Sound Code


	private static SoundPool sp = new SoundPool(3, AudioManager.STREAM_MUSIC, 0); 
	private static HashMap<Integer, Integer> sounds = new HashMap<>();
	private static Vector<Integer> sounds_important = new Vector<>();

	public static void loadSound(int id, int priority, boolean important){
		if(sounds_important.contains(id)|| id==-1){
			return;
		}
		sounds.put(id, sp.load(IllumitanGame.ig.getContext(), id, priority));
		if(important){
			sounds_important.add(id);
		}
	}

	public static void unloadSounds(){
		Vector<Integer> remove = new Vector<>();
		for(int i : sounds.keySet()){
			if(sounds_important.contains(i)){
				continue;
			}
			remove.add(sounds.get(i));
			sp.unload(sounds.get(i));
		}
		for(Integer i : remove){
			sounds.remove(i);
		}
	}

	public static void unloadSound(int id){
		if(!sounds_important.contains(id)|| id==-1){
			return;
		}
		sp.unload(sounds.get(id));
		sounds.remove(id);
	}

	public static void playSound(int id){
		playSound(id, 70);
	}

	public static void playSound(int id, GameEntity target, GameEntity source){
		float xDiff = (target.rGetMiddleHorizontal())-(source.rGetMiddleHorizontal());
		playSound(id, (int)xDiff, 70);
	}

	public static void playSound(int id, int xDiff, int standard){
		if(xDiff==-1 || xDiff==0){
			playSound(id, standard);
			return;
		}

		boolean direction_right = xDiff>0;

		float volume_percent = 80 - 0.05f*xDiff;

		playSound(id, direction_right?volume_percent/2:volume_percent, direction_right?volume_percent:volume_percent/2);		
	}

	public static void playSound(int id, float volume_percent_both){
		playSound(id, volume_percent_both, volume_percent_both);
	}

	public static void playSound(int id, float volume_percent_left, float volume_percent_right){
		if(sound_enabled){
			if(id!=-1){
				sp.play(sounds.get(id),volume_percent_left/100,volume_percent_right/100,1,0,1.0f);//In dieser Zeile der letzte Wert ist die sogenannte "rate" auf welche die Meldung wahrscheinlich hinaus will
			}
		}
	}```

Verwendung von Sound Code
	public void playSound(int skill_centre){
		float distance = Math.abs(Camera.getCurrentGameCentreX()-skill_centre);
		AudioLib.playSound(sound_id, 80-0.05f*distance); //Der entsprechende Sound mit der 'sound_id' wird im Vorraus geladen. Die Rechnung nach der 'sound_id' generiert eine Lautstärke, passend zur Entfernung des Tons zur Kamera


Also wie gesagt werden die Sounds abgespielt. Dennoch wird jedes Mal diese nervige und "spammende" Meldung ausgedruckt.

Ich hab mich im Internet schon danach erkundigt aber keine zufriedenstellende Ergebnisse gefunden...



Würde mich sehr auf eine Antwort von euch freuen :)

Grüße Felix

Die Fehlermeldung ist harmlos.

Die bedeutet soviel wie: Du wolltest den Sound mit der Einstellung „so schnell wie möglich abspielen“ abspielen. Ist mir aber egal. Ich spiel sie ab wenn ich Zeit habe.

Du kannst natürlich die Doku durchforsten wie du im SoundPool das Flag nicht setzen lassen kannst. Das Verhalten wird im Latency Design Teil der Doku beschrieben. Es könnte auch sein, dass das gar nicht geht. Falls du also eine Möglichkeit findest, wäre es schön wenn du sie hier dokumentierst :wink:

[QUOTE=schlingel]Die Fehlermeldung ist harmlos.

Die bedeutet soviel wie: Du wolltest den Sound mit der Einstellung „so schnell wie möglich abspielen“ abspielen. Ist mir aber egal. Ich spiel sie ab wenn ich Zeit habe.

Du kannst natürlich die Doku durchforsten wie du im SoundPool das Flag nicht setzen lassen kannst. Das Verhalten wird im Latency Design Teil der Doku beschrieben. Es könnte auch sein, dass das gar nicht geht. Falls du also eine Möglichkeit findest, wäre es schön wenn du sie hier dokumentierst ;-)[/QUOTE]

Achso…
Habe schon jede Menge Dokus durchsucht aber bin bisher auf keine Lösung gestoßen.
Naja, dann lass ich die nervigen Meldungen einfach mal so stehen!
Danke für die Erklärung jedenfalls :slight_smile:

Sollte irgendjemand doch eine Lösung gefunden haben um die Meldungen abzustellen, dann darf er sie gerne hier posten :wink: