Sto seguendo una serie di video conferenze di programmazione Android che è stata progettata nella pre-API 21 volte. Quindi mi dice di creare una variabile SoundPool nel modo seguente.impostare gli attributi audio nella classe SoundPool.Builder per l'API 21
SoundPool sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
//SoundPool(int maxStreams, int streamType, int srcQuality)
Tuttavia, voglio utilizzare anche questo SoundPool per l'API 21. Quindi, io sto facendo questo:
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 è una variabile di Builder
tipo per API 21 e SP è di SoundPool
tipo.
Questo funziona molto bene con il mio AVD con API 21 e dispositivo reale con API 19. (Non ho provato con un dispositivo reale con API 21 ma penso che funzionerà bene). Ora, voglio impostare lo streamType
su USAGE_MEDIA
nel blocco if prima del sp = sp21.build();
. Così ho tipo:
sp21.setAudioAttributes(AudioAttributes.USAGE_MEDIA);
Ma il Lint segna in rosso e dice:
Il metodo setAudioAttributes (AudioAttributes) nel tipo SoundPool.Builder non è applicabile per gli argomenti (int)
So che anche se non lo imposto su USAGE_MEDIA verrà impostato sullo stesso valore predefinito. Ma sto chiedendo un riferimento futuro se devo impostarlo su qualcosa di diverso: USAGE_ALARM.
Come devo procedere?
Please Help!
Ho fatto riferimento a Audio Attributes, SoundPool, SoundPool.builder e AudioManager.
dimenticato di include.setMaxStreams (5), in linea # 3 –