android – 从SQLite DB表的BLOB字段播放音频

我将我的音频文件存储到sqlite数据库(作为BLOB),现在我想从数据库获取它,并在单击按钮时播放它.
我的db表有三个字段:rowID,image,audio
在我表格的每一行中,存储了一个图像和一个音频(作为BLOB).

我试过这个,但对我不起作用:

byte[] byteAudio2 = null;

Cursor cur1 = db.query("audiofromdb_tbl",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,buffer.length)) > 0) {
    fos.write(buffer,size);
}

[]

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...