我在android上遇到音頻問題。Android中的AAC格式
簡短的問題:
我需要AAC格式播放和錄製音頻的所有的Android設備。 我發現它是由API 10可能開始,但我的BLU設備(2.3.5),它的工作原理是利用MediaRecorder
和MediaPlayer
。 但在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,並從文件播放聲音;
爲了使它在nexus上工作,我嘗試了aac-decoder - 它不會播放文件到最後(僅播放6秒鐘的10秒文件)。它不會播放上面代碼記錄的聲音。
我也嘗試安裝FFmpeg的,但我沒有經驗,使這個圖書館工作。
所以,你可以推薦一下嗎?
https://code.google.com/p/aacplayer-android/ – 2013-03-13 11:21:21
AAC解碼器是aacplayer的短版本。它不播放aac文件到最後,不播放設備錄製的聲音。 – Yanny 2013-03-13 14:12:55
我找到了部分解決方案。 1.在某些設備上音頻沒有播放,因爲我試圖從文件derectiory - data/data/com.myapp.player/files/music.aac播放它。 2.在某些設備上它不起作用,但aacdecoder可以播放文件到最後。只需將它設置爲小緩衝區大小AACPlayer aacPlayer = new MultiPlayer(clb,200,200); – Yanny 2013-03-20 14:23:37