将mp3文件存储在数据库中?

时间:2017-01-21 23:32:44

标签: android database

我目前正在为我的教会在Android Studio中创建一个移动Android应用程序 我的应用程序基本上是一本圣经,其经文与我传教士的mp3音频解释相关联;但是,我不知道是否应该将这些存储在用户手机中的mp3文件保存在数据库中。或者将它们存储在数据库中。

我一直在阅读有关数据库的一些内容,并发现SQLite很好,但是在本地存储数据库,这不是我想要的。

我该如何解决这个问题呢? 圣经中的每节经文都与我传道人的特定mp3音频布道/解释相关联。

2 个答案:

答案 0 :(得分:2)

由于细节太少,我无法理解你的问题。如果我正确理解了这个问题,实现这个问题的最好方法是将你想要的mp3上传到服务器,并在android应用程序中播放服务器中的文件(向网络发出请求)。在这种情况下,您将只向数据库保存mp3的名称以及从服务器到此文件的链接。

另一种方法是将你的mp3转换为base64并将其作为文本数据类型保存在SQLite中(因为base64字符串可能有超过256个字符长),并且在需要时你可以解码它但它会比托管所有内容慢得多云计算

try {
MediaPlayer player = new MediaPlayer();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setDataSource("http://xty/MRESC/images/test/xy.mp3");
player.prepare();
player.start();    
} catch (Exception e) {
// TODO: handle exception
}

答案 1 :(得分:1)

关系数据库并不一定意味着存储实际文件。当然,你可以存储BLOB二进制类型,但我不会建议它。那是什么文件服务器。例如,Amazon S3或Firebase存储。

您可以将URL存储到数据库中的文件中,但将实际文件存储在远程系统上以保持应用程序的大小。

当用户读取所述段落时,您可以懒惰地将资源缓存在磁盘上,或者设置系统来流式传输它们。除了每个设备下载整个文件一次之外,这需要更多的努力,但