0

나는 함수 중 하나가 짧은 문장을 녹음하고 나중에들을 수 있도록하는 응용 프로그램을 작성 중입니다. 일단 녹음 된 오디오 트랙은 인터넷을 통해 전송되어 서버에 저장된다고 가정합니다. 내 질문은 안드로이드 응용 프로그램 및 서버뿐만 아니라 오디오를 저장하는 가장 좋은 방법은 무엇입니까. 안드로이드 측면에서 blob로 SQLite 데이터베이스에 저장하는 방법에 대해 생각한 다음 외부 데이터베이스에 BLOB를 삽입하는 서버에서 PHP 스크립트를 실행하는 HTTP 요청을 작성합니다. 아니면 클라이언트 측과 서버 측 모두에서 파일 시스템에 파일을 저장해야하며 데이터베이스에서 파일에 대한 참조 만 유지해야합니까? 제발 조언. 고맙습니다.데이터베이스에 오디오 파일을 BLOB 또는 파일 시스템에 저장 하시겠습니까?

+0

파일의 크기 - 안드로이드에서 SQLite에서 BLOB를 검색하는 것은 바이트 [] 배열로 제한되어 있으므로 메모리 용량이 적은 장치에서는 큰 파일이 문제가됩니다. – Jens

+0

대부분의 시간 녹음은 10 초보다 길어서는 안되며 3gp 형식으로 약 20K를 제공합니다. 가장 긴 녹음은 약 5 분이 걸릴 수도 있습니다. –

+0

좋습니다, 5 ~ 600K 정도가 SQLite에 맞습니다. 녹음 내용을 얼마 동안 클라이언트에 보관할 예정입니까? 영구적으로 또는 서버와 동기화 할 때까지? – Jens

답변

0

내가 읽은 내용을 바탕으로 외부 서버의 데이터베이스에 파일을 보낼 이유가 없습니다 (듣기를 계획하지 않는 한 ... teehee).

단순히 오디오를 실제 파일로 사용자의 SD 카드에 저장 한 다음 오디오 파일에 대한 참조를 Android 휴대 전화의 SQLlitee 데이터베이스에 저장하는 것이 가장 좋습니다. 당신이 말한 바에 따르면 왜 외부 서버의 데이터베이스에 대한 정보가 필요한지 알 수 없지만 외부 db에 파일의 이름, 디렉토리 및 ID를 저장할 수도 있습니다.

오디오를 BLOB에 SQLlite 데이터베이스에 저장할 수는 있지만 오디오 녹음이 너무 길면 파일이 커지고 데이터베이스에 삽입 및 검색하는 데 문제가 발생할 수 있습니다. 파일을 더 작은 500KB 섹션으로 나누고 데이터베이스에 저장하고, ID에 따라 검색하고, 그룹화하고 재생할 수 있습니다.

사용자가 녹음을 녹음하거나 재생할 때마다 오디오 파일을 서로 다른 두 서버간에주고받는 것은 불필요하고 어리석은 일입니다.

+0

실제로 외부 서버에 파일을 저장하는 데 필요한 요구 사항과 주요 사항이 있습니다. 사용자가 음성을 녹음하면 듣고 나서 서버로 보낼 수 있습니다. 따라서 응용 프로그램을 실행하는 다른 사용자도이 트랙을들을 수 있습니다. –