我用DB浏览器创建一个DB sqlite。 我需要从我的Db开始一个随机音频。 该表是“音频”,有4个字段(Id,audio,col2,col3) 我在R.raw.nameaudio中添加了“音频”字段。
这是随机数:
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的第二个参数存在问题。 我无法传递正确的数据类型。我怎么能解决这个问题?
非常感谢你。
编辑: 我试图在“音频”字段中只放置“nameaudio”。插入后:
int audio = getResources().getIdentifier(res.getString(0),
"raw", "mypackage");
stopPlaying();
mp = MediaPlayer.create(getApplicationContext(),audio);
mp.start();
现在我列出了音频,但在点击应用程序崩溃后。
答案 0 :(得分:0)
获取随机数后
尝试这样的事情:
int aud1 = R.raw.my_audio_1;
int aud2 = R.raw.my_audio_2;
int aud3 = R.raw.my_audio_3;
int aud4 = R.raw.my_audio_4;
int audioToPlay = -1;
switch (random){
case 1:
audioToPlay = aud1;
break;
case 2:
audioToPlay = aud1;
break;
case 3:
audioToPlay = aud1;
break;
case 4:
audioToPlay = aud1;
break;
}
// now simply assign this audio to media player
mp = MediaPlayer.create(getApplicationContext(),audioToPlay);
mp.start();