Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在数据库中将音频文件保存为BLOB或文件系统?_Php_Android_Android Sqlite_Android Mediarecorder_Blobstorage - Fatal编程技术网

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

Php 在数据库中将音频文件保存为BLOB或文件系统?,php,android,android-sqlite,android-mediarecorder,blobstorage,Php,Android,Android Sqlite,Android Mediarecorder,Blobstorage,我正在编写一个应用程序,其中一个功能是允许用户录制一个简短的短语,并在以后收听它们。录音后,音频曲目将通过互联网发送并存储在服务器中。我的问题是,在android应用程序和服务器中存储音频的最佳方式是什么。我考虑将它作为一个blob存储在android端的SQLite数据库中,然后发出HTTP请求,在服务器中运行一个php脚本,该脚本还将在外部数据库中插入一个blob。或者我应该将文件存储在客户端和服务器端的文件系统中,并且只在数据库中保留对文件的引用吗?请给我一些建议。谢谢。根据我在您的问题中

我正在编写一个应用程序,其中一个功能是允许用户录制一个简短的短语,并在以后收听它们。录音后,音频曲目将通过互联网发送并存储在服务器中。我的问题是,在android应用程序和服务器中存储音频的最佳方式是什么。我考虑将它作为一个blob存储在android端的SQLite数据库中,然后发出HTTP请求,在服务器中运行一个php脚本,该脚本还将在外部数据库中插入一个blob。或者我应该将文件存储在客户端和服务器端的文件系统中,并且只在数据库中保留对文件的引用吗?请给我一些建议。谢谢。

根据我在您的问题中读到的内容,没有理由将文件发送到外部服务器的数据库(除非您计划收听它…teehee)

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

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


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

文件有多大-在Android中从SQLite检索blob仅限于字节[]阵列-如此大的文件在内存不足的设备上会有问题。大多数时间录制不应该超过10秒,这给了我大约20K的3gp格式。最长的记录可能是5分钟左右,5~600K左右适合SQLite。您打算在客户机上保留录音多长时间?永久或仅在您与服务器同步之前?仅在a与服务器同步之前。您好,Jens,我不确定这是否是您的评论,因为我只能在收件箱中看到部分评论,但它不会显示在页面中。请完成你的回答。谢谢。实际上,在外部服务器中存储文件是有要求和要点的。一旦用户录制了一个语音,他就可以收听它,然后将它发送到服务器。因此,运行应用程序的其他用户也可以收听此曲目。