我将我的音频文件存储到sqlite数据库(作为BLOB),现在我想从数据库中获取它,并在单击按钮时播放它.
我的db表有三个字段:rowID,image,audio
在我表格的每一行中,存储了一个图像和一个音频(作为BLOB).
我试过这个,但对我不起作用:
byte[] byteAudio2 = null;
Cursor cur1 = db.query("audiofromdb_tbl", null, null, null, null, null, null);
cur1.moveToFirst();
byteAudio2 = cur1.getBlob(cur1.getColumnIndex("audio"));
File tempWav = null;
FileOutputStream fos = new FileOutputStream(tempWav);
fos.write(byteAudio2);
fos.close();
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(fos.getFD());
mp.prepare();
mp.start();
解决方法:
尝试这样的事情:
byte[] buffer = new byte[2048];
int size = 0;
ByteArrayInputStream byteArrayStream = new ByteArrayInputStream(byteAudio2);
while ((size = byteArrayStream.read(buffer, 0, buffer.length)) > 0) {
fos.write(buffer, 0, size);
}
[]