2013-07-31 2 views
0

안녕하세요, 저는 오디오를 녹음하는 작은 응용 프로그램을 만들었습니다. 내 문제는 다음 코드에서 특정 폴더에 파일을 만들 수 있지만이 오디오 파일을 재생하려고 할 때이 미디어 파일이 지원되지 않는다고합니다. PLZ 도움말android의 미디어 레코더

public void startRecording() { 

     System.out.println("STart Recording"); 

     if (recorder != null) { 
      recorder.release(); 
     } else { 
      recorder = new MediaRecorder(); 
      recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
      recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
      recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); 
      recorder.setOutputFile(getFilePath()); 

      try { 
       recorder.prepare(); 
       recorder.start(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } finally { 
       recorder.release(); 
      } 
     } 

    } 

    private void stopRecording() { 

     System.out.println("Stop Recording"); 

     try { 
      if (null != recorder) { 
       recorder.stop(); 
       recorder.reset(); 
       recorder.release(); 
       recorder = null; 
      } 

     } catch (IllegalStateException e) { 
      e.printStackTrace(); 
     } 

    } 

    private String getFilePath() { 
     File rsd = Environment 
       .getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC); 
     if (!rsd.isDirectory()) { 
      rsd.mkdir(); 
     } 
     File dcim = new File(rsd + "/hello.mp3"); 

     return dcim.getAbsolutePath(); 
    } 
+1

다음은 듣고 싶은 파일 당신이 레코더에서이 형식이 MediaRecorder.OutputFormat.THREE_GPP입니다 MP3는, 아마도 그 이유 ... –

+0

난 당신이 필요가 있다고 생각입니다 라이브러리를 추가하는 데 도움이됩니다. http://stackoverflow.com/questions/3641920/how-to-encode-a-wav-to-a-waves-a-mp3-on-a-android-device/ –

+0

다음은 Manifest 권한입니다. Nik

답변

0

랄프 하우스 (Ralph House)와 마찬가지로 말하면서 .3gp 확장명으로 파일을 저장해야합니다. 변경

File dcim = new File(rsd + "/hello.mp3"); 

사람 :

File dcim = new File(rsd + "/hello.3gp"); 
+0

나는 그것을 .3gp로 바꾸지 만 파일은 여전히 ​​내부에만 존재한다. – Nik

관련 문제