Как загрузить файл в SoundPool по URI?

196
14 апреля 2018, 21:40

Как загрузить звук в soundpool из URI? Сейчас таким методом не работает. Хотя из raw все грузит.

// используем класс SoundPool.Builder, если используется Android 5.0 и выше
        // иначе вызываем конструктор
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            AudioAttributes audioAttributes = new AudioAttributes.Builder()
                    .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
                    .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                    .build();
            soundPool = new SoundPool.Builder()
                    .setMaxStreams(6)
                    .setAudioAttributes(audioAttributes)
                    .build();
        } else {
            soundPool = new SoundPool(6, AudioManager.STREAM_MUSIC, 0);
        }
        // находим элементы
        seekBar = (SeekBar) findViewById(R.id.seekBar);
        ib1 = (ImageButton) findViewById(R.id.ib1);
        ib2 = (ImageButton) findViewById(R.id.ib2);
        ib3 = (ImageButton) findViewById(R.id.ib3);
        ib4 = (ImageButton) findViewById(R.id.ib4);
        ib5 = (ImageButton) findViewById(R.id.ib5);
        ib6 = (ImageButton) findViewById(R.id.ib6);
        btnStop = (Button) findViewById(R.id.btnStop);
        sRepeat = (Switch) findViewById(R.id.sRepeat);
        // устанавливаем слушатели
        ib1.setOnClickListener(this);
        ib2.setOnClickListener(this);
        ib3.setOnClickListener(this);
        ib4.setOnClickListener(this);
        ib5.setOnClickListener(this);
        ib6.setOnClickListener(this);
        btnStop.setOnClickListener(this);
        // получаем uri адреса
        Uri i1 = Uri.parse("android.resource://com.zaitseva.lab2/" + R.raw.s1);
        Toast.makeText(getApplicationContext(), i1 + "", Toast.LENGTH_LONG).show();
        Uri i2 = Uri.parse("file:///Ringtones/z.mp3");
        Uri i3 = Settings.System.DEFAULT_RINGTONE_URI;
        // указываем адреса звуков
        sound1 = soundPool.load(i1.getPath(), 1);
        sound2 = soundPool.load(this, R.raw.s2, 1);
        sound3 = soundPool.load(this, R.raw.s3, 1);
        sound4 = soundPool.load(this, R.raw.s4, 1);
        sound5 = soundPool.load(this, R.raw.s5, 1);
        sound6 = soundPool.load(this, R.raw.s6, 1);
READ ALSO
Java рекурсия stackoverflow exception

Java рекурсия stackoverflow exception

В программе существует несколько синхронизированных потоков, каждый из них рекурсивен, и создает новый объект который содержит в себе примерно...

166
Java - Записать куки на все пути URL

Java - Записать куки на все пути URL

В сервлете по URL - /user/registration регистрирую пользователя и записываю в его браузер куки

173
Прозрачный фон у WebView

Прозрачный фон у WebView

Нужно сделать прозрачный фон у WebView в JavaFX

194
За что отвечает ACCESS_MOCK_LOCATION

За что отвечает ACCESS_MOCK_LOCATION

Добрый день уважаемые! В манивесте приложения содержится следующее разрешение :

211