1
我想每一個視圖被點擊時播放聲音:的Soundpool播放聲音只在第一次
我創建了一個簡單的效應播放:
public class EffectManager {
private static SoundPool soundPool;
private static int puzzlePieceOK;
private static int puzzleOK;
public static void init(Context context) {
if (soundPool == null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
soundPool = new SoundPool.Builder()
.setAudioAttributes(new AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.setUsage(AudioAttributes.USAGE_GAME)
.build()
)
.setMaxStreams(10)
.build();
}
else {
soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 1);
}
puzzlePieceOK = soundPool.load(context,R.raw.puzzle_piece_ok,1);
puzzleOK = soundPool.load(context,R.raw.puzzle_ok,1);
}
}
public static void playPuzzlePieceOK() {
soundPool.play(puzzlePieceOK,10,10, 1,0,1);
}
public static void playPuzzleOK() {
soundPool.play(puzzleOK,10,10, 1,1,1);
}
}
我打電話EffectManager.init
在onCreate
事件的我活動。然後我添加這個聽衆我的意見:
setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EffectManager.playPuzzlePieceOK();
}
});
我可以聽到聲音時,我只點擊第一個視圖。我嘗試了點擊視圖的不同順序,聲音僅用於第一次點擊。除了此警告外,控制檯上沒有任何消息錯誤。 :
W/AudioTrack: AUDIO_OUTPUT_FLAG_FAST denied by server
此警告僅在第一次單擊時出現。