2013-03-07 4 views
5

Android에서 오디오에 문제가 있습니다.Android의 AAC 형식

짧은 질문 :

내가 AAC 형식으로 모든 안드로이드 장치를 오디오를 재생하고 녹음 할 필요가있다. API 10에서 시작하는 것이 가능하지만 BLU 장치 (2.3.5)에서는 MediaRecorderMediaPlayer을 사용하여 작동합니다. 하지만 HTC Nexus One에서는 작동하지 않습니다. 의견이 있으십니까?

긴 질문 :

기록하고 난 다음 코드를 사용하고 AAC 포맷으로 오디오를 재생합니다. 그것은 매우 간단하고 어리 석었지만 테스트를 위해 작동합니다.

String pathForAppFiles = getFilesDir() 
       .getAbsolutePath(); 
     pathForAppFiles += "/bla.mp4"; 
     if (audioRecorder == null) { 

      File file = new File(pathForAppFiles); 
      if (file.exists()) 
       file.delete(); 

      audioRecorder = new MediaRecorder(); 

      audioRecorder 
        .setAudioSource(MediaRecorder.AudioSource.MIC); 

      audioRecorder 
        .setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 

      audioRecorder 
        .setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 

      audioRecorder.setOutputFile(pathForAppFiles); 

      try { 
       audioRecorder.prepare(); 
      } catch (IllegalStateException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      audioRecorder.start(); 

     } else { 
      audioRecorder.stop(); 
      audioRecorder.release(); 
      audioRecorder = null; 

      new AudioUtils().playSound(pathForAppFiles); 
     } 

new AudioUtils().playSound(pathForAppFiles); - MediaPlayer를 만들고 파일에서 사운드를 재생합니다.

넥서스에서 작동하게하려면 aac-decoder을 시도했습니다. 파일을 마지막까지 재생하지 않습니다 (10 초 파일의 6 초만 재생). 그리고 위 코드에서 기록한 사운드는 재생되지 않습니다.

또한 FFmpeg를 설치하려고했지만이 라이브러리 작업을 경험하지 못했습니다.

추천 할만한 제품이 있습니까?

+0

https://code.google.com/p/aacplayer-android/ –

+0

aac-decoder는 aacplayer의 짧은 버전입니다. 끝까지 aac 파일을 재생하지 않으며 장치에서 녹음 한 사운드를 재생하지 않습니다. – Yanny

+0

부분적인 해결책을 찾았습니다. 1. 일부 장치에서는 오디오 파일 (데이터/데이터/com.myapp.player/파일/music.aac)에서 재생하려고하기 때문에 오디오가 재생되지 않았습니다. 2. 일부 장치에서는 작동하지 않지만 aacdecoder는 파일을 끝까지 재생할 수 있습니다. 그냥 작은 버퍼 크기로 설정합니다. AACPlayer aacPlayer = 새 MultiPlayer (clb, 200, 200); – Yanny

답변

1

킨들 파이어 (Kindle Fire)와 같은 일부 장치가 어디에서나 aac을 재생하지 못하기 때문에 오디오 형식을 MP3로 변경하여이 문제를 해결했습니다.

내 추천 : 크로스 플랫폼 사운드를 만들고 싶다면 MP3를 사용하십시오. lame encoder으로 모든 사운드를 MP3로 변환 할 수 있습니다.