2

我想将 3gp 文件保存在 sqlite 中,而不是 3gp 文件的路径。1. 可以在 sqlite 中保存 3gp 文件吗?2. 怎么做?3. 如果是,创建后会产生哪种类型的问题?

修改:

我可以使用 blob 将图像文件保存到 sqlite,对于图像,我正在从“位图到字节数组”转换为写入和从“字节数组到位图”转换为读取。但对于 3gp 文件,我无法读写。

4

2 回答 2

3
  1. 尝试 Base64 编码/解码技术。获取视频的输入流并使用 Base64 将其编码为字符串。

试试这个代码: -

private String downloadVideo(String url)
    {
         String video = "";
         URL u = null;
         InputStream is = null;  

              try {
                       u = new URL(url);
                       is = u.openStream(); 
                       HttpURLConnection huc = (HttpURLConnection)u.openConnection();//to know the size of video

                   if(huc != null)
                   {
                       InputStream inputStream =  huc.getInputStream();
                       byte[] buff = new byte[8000];
                       int bytesRead = 0;

                       ByteArrayOutputStream bao = new ByteArrayOutputStream();

                       while((bytesRead = inputStream.read(buff)) != -1) {
                          bao.write(buff, 0, bytesRead);
                       }

                       byte[] data = bao.toByteArray();
                       video = Base64.encodeBytes(data);
                   }                     
              }catch (MalformedURLException mue) {
                     mue.printStackTrace();
              } catch (IOException ioe) {
                     ioe.printStackTrace();
             } finally {
                        try {                
                          if(is != null){
                            is.close();
                          }
                        }catch (IOException ioe) {

                        }

             }
              return video;
    }

比您可以将字符串存储到数据库中。从数据库中获取时,您可以将字符串解码为输入流并获取真实视频。

  1. 在此处尝试以下链接,您将拥有 BLOB 技术:-

http://www.helloandroid.com/tutorials/store-imagesfiles-database

但是将视频存储到数据库中并不是一个好主意,它会增加数据库的大小和查询的执行时间。

更多看看: -

在android的sqlite中存储视频?

将视频存储在 SQLite 数据库中?

于 2013-10-15T08:55:44.057 回答
0
  • 是否可以在 sqlite 中保存 3gp 文件?

    你得到了答案,BLOB。

  • 怎么做 ?

    正如 bashu 所回答的那样,使用 Base64 进行数据流处理是一个好主意。使用 base64,您可以方便地将数据保存到数据库中。

  • 如果是,创建后会产生哪种类型的问题?

    这是你问的最好的问题片段。是的,它会的。不要做。相反,将文件路径的字符串值保留在 DB 中并使用它们
    原因:
    1.不必要的,给数据库增加负担。
    2.游标对象会给你例外,因为当涉及到小型设备时,设备内存在你的内存中是非常重要的。(除非你打算将所有大小小于1MB的图像一起保存

于 2013-10-15T09:37:21.990 回答