Ich folge einer Video-Vortragsreihe von Android Programming, die in der Pre-API 21 mal entworfen wurde. Daher sagt es mir, eine SoundPool-Variable auf folgende Weise zu erstellen.Audio-Attribute in der SoundPool.Builder-Klasse für API 21 setzen
Allerdings möchte ich diesen SoundPool auch für API 21 verwenden. Also, ich tue dies:
if((android.os.Build.VERSION.SDK_INT) == 21){
sp21 = new SoundPool.Builder();
sp21.setMaxStreams(5);
sp = sp21.build();
}
else{
sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
}
SP21 ist eine Variable vom Typ Builder
für API 21 und sp von SoundPool
Typ.
Dies funktioniert sehr gut mit meinem AVD mit API 21 und Real-Gerät mit API 19. (Habe nicht mit einem echten Gerät mit API 21 versucht, aber ich denke, es wird gut funktionieren). Nun möchte ich die streamType
auf USAGE_MEDIA
im if-Block vor sp = sp21.build();
setzen. So Typ I:
sp21.setAudioAttributes(AudioAttributes.USAGE_MEDIA);
Aber die Lint markiert es in rot und sagt:
Die Methode setAudioAttributes (AudioAttributes) in der Art SoundPool.Builder für die Argumente nicht anwendbar ist (int)
Ich weiß, dass selbst wenn ich es nicht auf USAGE_MEDIA einstellen wird es standardmäßig auf die gleiche gesetzt wird. Aber ich frage nach einer zukünftigen Referenz, wenn ich es auf etwas anderes wie: USAGE_ALARM setzen muss.
Wie soll ich fortfahren?
Bitte Hilfe!
Ich habe auf Audio Attributes, SoundPool, SoundPool.builder und AudioManager verwiesen.
zu include.setMaxStreams vergessen (5) in Zeile # 3 –