Я создаю sqlite базы данных с браузером БД. Мне нужно запустить рандомизированный звук из моего Db. Таблица «audio» с 4-мя полями (Id, audio, col2, col3) Я положил в поле «audio» значение R.raw.nameaudio.Случайный звук из моего собственного DB
это случайное число:
rand = new Random();
int random=rand.nextInt(4)+1;
это запрос:
public Cursor cont(Integer ID){
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.rawQuery("select audio from audio where ID= "+ID, null);
return res; }
Теперь мне нужно, чтобы начать MediaPlayer, но он не работает.
это остальная часть кода:
Cursor res = mDBHelper.controllo(random);
while (res.moveToNext()) {
int audio = res.getInt(0);
stopPlaying();
mp = MediaPlayer.create(getApplicationContext(),audio);
mp.start();
}
Существует проблема со вторым аргументом mediaplayer.create. Я не могу передать правильный тип данных. Как я могу это исправить?
Большое вам спасибо.
EDIT: Я пытаюсь поместить только «nameaudio» в поле «audio». После ввода i:
int audio = getResources().getIdentifier(res.getString(0),
"raw", "mypackage");
stopPlaying();
mp = MediaPlayer.create(getApplicationContext(),audio);
mp.start();
Теперь я перечислил звук, но после некоторого щелчка приложения произошел сбой.
Почему не просто выбирая случайную строку? '... ORDER BY RANDOM LIMIT 1' –
try" int audio = res.getInt (1); " потому что вы сказали, что у вас есть 4 поля (Id, audio, col2, col3), поэтому «audio» находится в индексе «1»; –
@Rotwang Вы правы, но проблема остается, и мне нужно устранить строку после начала звука. – Scar