我在 android 上遇到音频问题。
简短的问题:
我需要在所有 Android 设备上播放和录制 aac 格式的音频。我发现它可以从 API 10 开始,但在我的 BLU 设备(2.3.5)上,它可以通过使用MediaRecorder
and来工作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 - 它不会播放文件到最后(仅播放 10 秒文件中的 6 秒)。而且它不会播放上面代码录制的声音。
我也尝试安装 FFmpeg,但我没有使这个库工作的经验。
那么你能推荐一些东西吗?