android - 从 SQLite 数据库表的 BLOB 字段播放音频

标签 android database audio blob playback

我将我的音频文件存储到一个 sqlite 数据库(作为 BLOB),现在我想从数据库中获取它并在单击按钮时播放它。 我的数据库表有三个字段:rowID、图像、音频 在我的表格的每一行中,存储了一个图像和一个音频(作为 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);
}

[]

关于android - 从 SQLite 数据库表的 BLOB 字段播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11554961/

相关文章:

android - "Bluetooth share has stopped working"执行LeScan时

android - 在 Android 中使用现有的 sqlite 表?

Java - 多线程声音剪辑同时播放

android - android智能手机3.5mm音频口RS232串口信号输入(android开发)

database - 专业的数据库,如 BigTable、SimpleDB

javascript - 开关的javascript问题,图像和声音的情况

android - 自定义抽屉布局

java - 带有 Maven 的 Google Play 服务已添加异常(exception)

database - 转换为 2NF,然后显示两种转换的 3NF

mysql - 如何在 MySQL 数据库中插入文件?