2014-01-10 2 views
0

나는 방언 사전 인 안드로이드 응용 프로그램을 만들고 있습니다. 내 문제는 데이터베이스에 audio.mp3 파일을 저장하는 방법을 모른다는 것입니다.sqlite에 mp3 파일을 저장하는 방법은 무엇입니까?

아무도 나를 가르치거나 그것을 만드는 방법에 대한 몇 가지 코드를 공유 할 수 있습니까?

+4

친애하는 사용자, MP3 파일의 데이터베이스에 저장해서는 안됩니다. 로컬 저장소에 저장하십시오. 데이터베이스가 해당 mp3에 대한 경로 만 갖도록하십시오. –

+0

몇 가지 코드를 제공 할 수 있습니까? – Loki11

+0

관련 항목 : [Store Android SQLite] (http://stackoverflow.com/q/9140952/1597744) –

답변

0

귀하의 요구 사항에 따라 귀하의 5 mp3가 폴더 (또는 디렉토리) "MySongs"에 저장된 SDCard에 저장되어 있다고 가정 해보십시오. 폴더를 다음과 같이 검색하십시오.

File[] myFiles; 
File pathToMySongs = new File(
       Environment.getExternalStorageDirectory() + "/MySongs"); 
if(pathToMySongs.exists()) 
{ 
    myFiles = pathToMySongs.listFiles(); 
} 
else 
    Toast.makeText(getBaseContext(), "No files found.", Toast.LENGTH_SHORT).show(); 

지금까지 해당 폴더의 모든 파일을 가져 왔습니다. 이제, 단순히 developer.android.com

for(File file : myFiles) 
{ 
    String path = file.getAbsolutePath(); 
    // apply your logic of inserting in database here 
} 

확인이 튜토리얼처럼, 각 루프를 사용하여 데이터베이스에 경로를 추가 : http://developer.android.com/training/basics/data-storage/databases.html

는 데이터베이스 및 데이터베이스에 대한 모든 CRUD 작업을 만드는 방법을 배울 수 있습니다.

+2

질문을 올바르게 읽으십시오 ... !!! – Kitkat

+0

나는이 질문을 올바르게 이해하고 있으며 모든 의견을 지금 듣고 있습니다. 왜냐하면 나는 그렇게 나빠야 해. 그리고 제 생각에 이해해주세요. 느린 코즈는 초보자이고 안드로이드에 대한 배경 지식이 없습니다. – Loki11

+0

@Kitkat 내가 이해 한 요구 사항에 따라 대답했다. 사용자는 여전히 Android 개발에 초보자라는 것을 알 수 있어야합니다. 그는 몇 가지 샘플 코드와 몇 가지 참고 문헌과 함께 적절한 지침이 필요합니다. –

2

BLOB 데이터 형식을 사용하여 저장할 수 있지만 SD 카드에 저장하고 DB에 저장하는 것이 좋습니다. 이렇게하면 응용 프로그램을 더 빠르게 실행할 수 있습니다. 파일로 미디어 유형의 데이터를 저장

장점

  • 응용 프로그램의 전체 크기를 줄일 수있다.
  • 적은 RAM 사용으로 더 빠르고 원활하게 실행됩니다. SQLite는 미디어 타입의 데이터를 저장

단점은 귀하의 전체 응용 프로그램의 크기가 증가 얻을 것이다

  • 입니다.
  • 거대한 응용 프로그램을로드하려면 더 많은 RAM이 필요합니다.
  • 더 큰 크기이기 때문에 샤링을 &에서 다운로드하는 데 시간이 걸립니다.
+0

감사합니다 ...하지만 몇 가지 예를 들어 줄 수 있습니까? – Loki11

+0

이러한 종류의 구현은 mp3 (또는 다른 유형의 바이너리) 파일의 수가 적고 유한 한 구성 데이터로 간주되는 특정 소프트웨어 프로젝트에서 실제로 필요합니다.예를 들어 알람 사운드에 사용되는 2 ~ 3 개의 짧은 mp3 파일이 있으며 다른 구성 데이터와 함께 수동으로 응용 프로그램 설치를 통해 전송해야합니다. –

0

데이터베이스에 사운드 파일을 저장하는 주된 이유는 제품 라인 접근 방식 일 수 있습니다. 데이터베이스를 수정하고 코드를 수정하지 않고도 많은 유사한 응용 프로그램을 개발할 수 있습니다.

댓글이있어 보지 않으므로 애플리케이션 크기에 댓글을 남기지 않았습니다.

예. blob 필드로 sqlite 데이터베이스에 작은 크기의 사운드 파일을 저장할 수 있습니다. 잘 작동한다. 먼저 데이터를 데이터베이스에 저장 한 다음 검색하여 임시 파일에 저장하십시오. 그렇게하면 데이터베이스에 사운드 파일을 저장할 수 있습니다.

확인이 :

//soundData is mp3 byte array taken from sqlite as blob 

soundDataFile = File.createTempFile("sound", "sound"); 
FileOutputStream fos = new FileOutputStream(soundDataFile); 
fos.write(soundData); 
fos.close(); 

mediaPlayer.reset(); 
mediaPlayer.setDataSource(soundDataFile.getAbsolutePath()); 
mediaPlayer.prepare(); 
mediaPlayer.start(); 
관련 문제