Как получить звук из базы данных SQLite? - PullRequest
0 голосов
/ 10 февраля 2019

Я хочу восстановить звук после нажатия кнопки.Звук извлекается из базы данных 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

}
...