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

7 respostas
java
W

Boa noite.

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

Desde já, mt obg!

7 Respostas

W

2 MESES DEPOIS…

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

T

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.

W

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!

T

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.

W

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?

T

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.

W

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!

Criado 3 de maio de 2020
Ultima resposta 1 de jul. de 2020
Respostas 7
Participantes 2