Я хочу восстановить звук после нажатия кнопки.Звук извлекается из базы данных sqlite в виде BLOB.Я включил исходный код ниже.Любой может помочь исправить мою кодировку.
Я уже пытался восстановить звук с помощью файла, но я получил ошибку, из-за которой java.util.ArrayList не может быть приведен к java.io.File.
/*databaseAccess.java*/
public List<byte[]> getAudio(long i)
{
List<byte[]> list = new ArrayList<>();
byte[] byteaudio = null;
String selectAudio = "SELECT audio FROM IMAGE WHERE id =" + i;
Cursor c = database.rawQuery(selectAudio, null);
if(c.moveToFirst())
do{
byteaudio = c.getBlob(c.getColumnIndex("audio"));
list.add(byteaudio);
}while(c.moveToNext());
return list;
}
/*MainActivity.java*/
public void playSong(int songIndex) {
// Define final variables since they have to be accessed from inner class
final DatabaseAccess databaseAccess = DatabaseAccess.getInstance(this);
// Open the database
databaseAccess.open();
// Close the database
databaseAccess.close();
Intent intent = getIntent();
long topicId = intent.getLongExtra("SelectedTopicId", 0);
databaseAccess.open();
List<byte[]> audio = databaseAccess.getAudio(songIndex);
databaseAccess.close();
mp.reset();
mp = MediaPlayer.create(MainActivity.this, Uri.fromFile((File) audio));// create's
mp.start(); // starting mediaplayer
}