2011-04-28 5 views
0

나는 3gp 형식으로 오디오를 녹음하고 SD 카드에 보관했습니다. 이것은 내 코드이며 sucessfull을 실행합니다. 추가 된 이미지가 오디오 파일에 추가되도록 이미지에 오디오 파일을 추가해야합니다. 앨범 표지 내가 android..like이의 기본 미디어 플레이어에서 SD 카드 위치에서 가져온 녹음 된 오디오를 재생하려고 &는 ..안드로이드에서 오디오 녹음

enter image description here

가 그림에 표시된 이미지는 내가 가지고있는 앨범 커버입니다 녹음 된 오디오 파일에 내 보냅니다.

/** 
* Starts a new recording. 
*/ 
public void start() throws IOException { 
String state = android.os.Environment.getExternalStorageState(); 
if (!state.equals(android.os.Environment.MEDIA_MOUNTED)) { 
    throw new IOException("SD Card is not mounted. It is " + state 
     + "."); 
} 

// make sure the directory we plan to store the recording in exists 
File directory = new File(path).getParentFile(); 
if (!directory.exists() && !directory.mkdirs()) { 
    throw new IOException("Path to file could not be created."); 
} 

recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
System.out.println("audio_file_path : = " + path); 
recorder.setOutputFile(path); 
recorder.prepare(); 

recorder.start(); // Recording is now started 




} 

답변

1

Android 미디어 플레이어에 아트를 표시하는 데 필요한 파일이 필요한 경우 Google 콘텐츠 공급자를 사용하여 앨범 아트를 추가하는 것을 고려해보십시오. 3GP 파일을 만든 후 MediaScannerConnection API를 사용하여 스캔하십시오. 데이터베이스에 추가 된 후 활동 또는 서비스에서 ContentResolver을 사용하여 액세스 할 수 있습니다. MediaScannerConnection은 새로 생성 된 파일의 URI를 제공합니다. 당신은 sdcard에 위치에 원하는 새로운 예술을 배치 할 수 있습니다. 그런 다음 getContentResolver().udpate(uri, newArtContentValue, null, null)으로 전화하십시오. newArtContentValueContentValue 개체의 인스턴스이며 키는 MediaStore.Audio.AudioColumns.ALBUM_ART이고 값은 file:///sdcard/yourartfile.png입니다.

경고 : 실제로 시도하지는 않았으므로 약간의 수정이 필요할 수 있습니다. Google에서 동영상 파일 대신 오디오 파일로 처리하여 ALBUM_ART 필드가 존재하도록 파일의 확장자를 변경해야 할 수도 있습니다. 내가 고려하지 않은 다른 경우도있을 수 있습니다.

당신이 절대적으로 파일 자체의 예술 포함해야하는 경우 :

3GP 파일 (내 지식) 파일에 포함 된 비밀 예술 메타 데이터를 지원하지 않는합니다. 그래서, 당신은 다른 컨테이너 형식으로 기록해야합니다. 그럼에도 불구하고, 은밀한 예술 메타 데이터를 지원하는 유일한 OutputFormat은 MP4라고 생각합니다. 그리고 이러한 태그를 추가하기 위해 미디어 파일을 직접 수정할 수있는 Android 기능에 대해서는 알지 못합니다.