将音频文件作为BLOB或文件系统保存在数据库中?

时间:2012-09-01 22:10:20

标签: php android android-sqlite android-mediarecorder blobstorage

我正在编写一个应用程序,其中一个功能是允许用户录制短语并在以后收听。一旦录制,音轨就会通过互联网发送并存储在服务器中。我的问题是什么是在Android应用程序和服务器中存储音频的最佳方式。我想将它作为一个blob存放在SQLite数据库中,然后在服务器端运行一个php脚本,在服务器中运行一个blob,它也会在外部数据库中插入一个blob。或者我应该将文件存储在客户端和服务器端的文件系统中,而在数据库中只保留对文件的引用?请指教。谢谢。

1 个答案:

答案 0 :(得分:0)

根据我在你的问题中所读到的内容,没有理由将文件发送到外部服务器的数据库(除非你打算听它... teehee)。

最好将音频作为实际文件存储在用户的SD卡上,然后在android手机的SQLlitee数据库中保存对音频文件的引用。根据您的说法,我不明白为什么您需要外部服务器数据库中的信息,但您也可以在外部数据库中保存文件的名称,目录和ID。

您可以将音频存储在SQLlite数据库的BLOB中,但要注意,如果录音太长,文件会很大,并且您可能会在插入和检索数据库时遇到问题。您可以将文件分成较小的500KB部分并将它们存储在数据库中,根据它们的ID检索它们,将它们组合在一起并进行播放。

每次用户想要录制或播放录音时,在两台不同的服务器之间来回传输音频文件是不必要和荒谬的。