Образец 1 не ГОТОВ SoundPool - PullRequest
0 голосов
/ 23 мая 2019

На самом деле мое устройство не поддерживает MediaPlayer, поэтому я пытаюсь использовать SoundPool для воспроизведения звука .wav, который будет что-то вроде «звука уведомления об ошибке», его вес всего 350 КБ.

Я былпытаюсь использовать следующий код, найденный в stackoverflow

private void playSound() {

    audioAttributes = new AudioAttributes.Builder()
            .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
            .setUsage(AudioAttributes.USAGE_MEDIA)
            .build();
    sp = new SoundPool.Builder().build();
    int soundId = sp.load(getApplicationContext(), R.raw.errorsound, 1);
    sp.play(soundId, 1, 1, 1, 1, 1f);


}

Но каждый раз, когда я пытаюсь воспроизвести звук, в Logcat появляется "sample 1 not READY"

Что не так с этим кодом?Как мне это исправить?

ОБНОВЛЕНИЕ:

После изменения кода следующим образом

private void playSound() {

    audioAttributes = new AudioAttributes.Builder()
            .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
            .setUsage(AudioAttributes.USAGE_MEDIA)
            .build();
    sp = new SoundPool.Builder().build();
    final int soundId = sp.load(getApplicationContext(), R.raw.itemexist, 1);
    sp.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
        @Override
        public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
            sp.play(soundId, 1.0f, 1.0f, 1, 1, 1f);
        }
    });



}

«Образец 1 не ГОТОВ» больше не появляется, но ядо сих пор не слышу ни звука.В Logcat я получаю следующую ошибку:

Не удалось открыть libwvm.so: ошибка dlopen: "/system/vendor/lib64/libwvm.so" является 32-разрядной вместо 64-разрядной

...