Android SoundPool не воспроизводит звук

Я хочу воспроизвести короткий звук при нажатии кнопки с помощью SoundPool. Но при нажатии кнопки звук не появляется, несмотря на то, что журнал сообщает мне, что он загружен и «играет». Звуковой файл имеет формат .ogg, если это уместно. Вот мой код, buttonSound() вызывается в onCreate().

void buttonSound(){
    AudioAttributes attributes = new AudioAttributes.Builder()
        .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
        .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
        .build();

    soundPool = new SoundPool.Builder().setAudioAttributes(attributes).build();

    soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
        @Override
        public void onLoadComplete(SoundPool soundPool, int sampleId,
            int status) {
            Log.d("SOUNDPOOL", "COMPLETE "+button);
        }
    });
    button = soundPool.load(this, R.raw.button, 1);

}


public void onClick(View view) {
    switch (view.getId()) {
        case R.id.button_back:
            // Sound loaded
            if(button != 0) {
                soundPool.play(button, 1f, 1f, 1, 0, 1f);
                Log.d("PLAYING", "PLAYING");
            }
            break;

person twinrix    schedule 19.02.2020    source источник


Ответы (1)


Итак, очевидно, проблема была в AudioAttributes.USAGE_ASSISTANCE_SONIFICATION, она отлично работает с AudioAttributes.USAGE_GAME и AudioAttributes.USAGE_MEDIA. Я понятия не имею, почему, хотя.

person twinrix    schedule 19.02.2020