GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

ANDROID STUDIO SQLite - Como salvar um VÍDEO no Banco de dados SQLite?

Tags: #<Tag:0x00007f3bdf19bcf8>

Boa noite.

Estou querendo salvar no Banco de Dados (SQLite) um Áudio e um vídeo, como faz?

Desde já, mt obg!

2 MESES DEPOIS…

Ainda tenho esperânca kkk…
Algum crânio aí perfavore?

Por que você quer salvar o conteúdo de áudio e vídeo dentro do SQLite? Existe algum motivo específico pra você querer isso?

O mais comum é salvar esse tipo de conteúdo como arquivo na memória interna ou cartão sd, gravando no banco o caminho para esse arquivo, e usando esse caminho para acessar esse arquivo posteriormente.

De todo modo, o jeito mais comum de obter o que você quer é ter um campo blob e salvar os bytes do arquivo (que pode ser qualquer coisa: texto, binário, áudio, vídeo, etc). Veja um exemplo em https://stackoverflow.com/questions/24939090/how-to-store-3gp-audio-file-in-sqlite-android .

Abraço.

Obg, TerraSkilll, pela atenção e resposta!

Talvez eu tenha me expressado incorretamente, mas eu falei em gravar áudio e vídeo no SQLite, pq é assim que tô trabalhando com arquivos gerados pelo Banco. Nele tenho colunas do tipo BLOB pra salvar imagens, enfim. Pensei que era assim que também se gerava arquivos de áudio/vídeo, por isso que fiz essa pergunta.

Vi o link, obg!
Olha… pelo que vi, acredito que ele não mostra a implementação por completo, pois não mostra o contexto em que essas 6 linhas se encontra, como fazer, por exemplo, com que a câmera do celular tenha o modo de gravar disponível para o uso, como o gravador de áudio é trabalhado, enfim. O link e as coisas que já pesquisei são mt restritos.

Quando vou trabalhar com imagens, uso a Intent que chama a câmera do celular, mas ela só permite a câmera pra foto, não sei como faz pra permitir vídeo, nem sei como faz pra áudio. nunca trabalhei com áudio e vídeo.

No caso da câmera, tiro fotos pra guardar no banco do tipo blob, mas áudio/vídeo, não sei. Pra quem nunca fez isso (gravar áudio e vídeo), eu fico meio que perdida… Se não for mt incômodo, poderia me ajudar nisso?

Desde já mt obg!

O mais comum para esses arquivos (fotos, áudio e vídeo) é serem gravados em uma pasta separada, e o aplicativo armazena apenas o caminho para eles (algo como “/sdcard/nome_do_app/video547654.mp4”). É o que fazem aplicativos como o WhatsApp. Gravar os dados no banco é incomum, e raramente necessário.

Não, não mostra. Só mostra a parte de gravar esses dados no banco. Mas você precisa entender que as operações são separadas. Gravar fotos ou vídeo para a memória do aparelho é uma coisa. Pegar esses arquivos que estão na memória e grava no banco é outra coisa. Você não grava diretamente da câmera para o campo blob. Você grava o arquivo, e depois copia os bytes do arquivo para o banco (que é o que o link sugere).

É meio complicado colocar um tutorial aqui, mas se você fizer buscas, verá que há vários tutoriais de como fazer isso. O próprio Google fornece tutoriais, veja por exemplo: https://developer.android.com/training/camera/videobasics e https://developer.android.com/guide/topics/media/camera?hl=pt-Br . Obviamente, esse tipo de tutorial supõe que você entenda o básico sobre como configurar seu projeto (permissões) e como usar os views, activities e intents. Se você ainda tem dificuldade com isso, recomendo estudar um pouco desse básico.

Abraço.

TerraSkilll, obg pela resposta! Entendi oq vc falou, mas teve uma parte que ficou meio contraditória. Vc falou:

E

Ficou confuso… grava ou não grava NO BANCO? Primeiro vc disse que NÃO, depois disse que SIM.

Em:

Nn, não quero fazer esse jogo de gravar em um canto e trazer pra outro e vice-versa. Eu só quero que meu app gere áudios e vídeos, e sejam gravados/salvos na memória Externa (já que na interna é onde o banco de dados é salvo). É como vc falo na primeira parte:

Vc já implementou isso?

Não é contraditório porque as frases falam de coisas distintas. Mas o resumo é: você pode gravar qualquer coisa no banco de dados (inclusive vídeos, fotos e áudio), mas só porque é possível não quer dizer que é necessário.

Se o que você quer é simplesmente gravar um vídeo ou um áudio usando a câmera e o microfone do smartphone e poder acessá-los depois, não há necessidade de gravá-los dentro de um banco de dados, se o arquivo já está gravado na memória do aparelho. Se você tem algum motivo especial pra precisar do áudio/vídeo dentro de um campo blob na base de dados, precisa descrever qual esse motivo, pra gente poder ajudar melhor.

O primeiro link que coloquei mostra como pegar um arquivo já gravado na memória e colocá-lo (seus bytes) dele dentro de um campo blob. O objetivo é mostrar como fazer somente essa parte, não um aplicativo que faz o processo completo.

Na minha experiência, gravar mídia (fotos/áudio/vídeo) numa base de dados quase sempre é desnecessário. 99% do tempo, tudo o que é preciso é gravar o caminho para acessar o arquivo num campo string/varchar comum, só pra facilitar o acesso posterior.

Já, mas há muito tempo (Android 4 ou 5, acho). Mas tem vários tutoriais disso, inclusive um dos links que eu coloquei acima explica isso ( https://developer.android.com/guide/topics/media/camera?hl=pt-Br#capture-video ). Você deu uma olhada?

Como falei, colocar o processo completo aqui seria complicado. O melhor é que você procure alguns tutoriais (de preferência recentes, 2017 pra frente) e volte com dúvidas mais específicas, quando já tiver algum código desenvolvido.

Abraço.

1 Curtida

Perfeito.

Nn, só quero gerar o áudio/vídeo em uma pasta, não é necessário que seja no banco de dados.

Então, eu estava implementando salvar imagens no banco de dados, nesse caso era necessário mesmo, daí acabei seguindo a mesma linha de raciocínio de que seria o mesmo para áudio/vídeo. Mas vou fazer oq vc falou sim, com certeza.

Provavelmente as questões que virão serão expostas em outros tópicos, em vez desse.

Obg pela atenção!

//