Как воспроизвести звуки, которые хранятся в папке ресурсов или необработанных ресурсов, если конкретный файл для воспроизведения зависит от запроса SQLite?

Я нахожу способ воспроизведения звуков в моей папке ресурсов (res или assets, в зависимости от способа хранения), но файл, который будет загружен в soundpool или mediaplayer, зависит от запроса SQLite.

В настоящее время я делаю приложение-переводчик, которое отображает переводы слов или предложений через поисковую систему (просто отмечая, что это приложение - просто поисковая система, а не переводчик, такой как Google Translate). и мне нужна кнопка "произнести", которая будет воспроизводить, как произносится искомое слово на его диалект, и этот файл (он был предварительно записан) будет сохранен в папке ресурсов. Это похоже на то, что когда пользователь искал слово "яблоко", а кнопка была нажата, он будет воспроизводить "apple.mp3" в папке ресурсов.

Я только новичок в программировании для Android, и я ищу в Интернете и нашел ответы о звуковых пулах и медиаплеере, но я думаю, что раньше такого не видел.

1 ответ

Согласно моему комментарию:

  1. Создайте еще один столбец в вашей таблице базы данных
  2. Поместите ваши ссылки в этот столбец (т.е. R.raw.my_sound.mp3) (! Помните, что ссылка всегда int!)
  3. Когда вы запрашиваете значение из этого столбца и используете его следующим образом (я не проверял его. Это больше похоже на псевдокод;)):

    Cursor cursor = database.query(DATABASE_TABLE, 
    new String[] { KEY_REFERENCES }, WORD + " = " + insertedWord, null, null, null, null); 
    if (cursor.moveToFirst()){
       int reference = cursor.getInt(referenceColumnIndex);
       MediaPlayer mp = MediaPlayer.create(YourActivityClass.this, reference);
       if(mp != null) {
          mp.start();
       }
    }
    

Я думаю, что это должно работать.

Другие вопросы по тегам