【发布时间】:2011-07-12 10:01:17
【问题描述】:
我没有安卓手机,但无论如何我都在尝试开发它。目前测试我的应用程序的唯一方法是使用模拟器,我读过它不支持录音。但是,我读到了启动命令“-audio”,它允许使用“winaudio”后端从您的电脑输入/输出音频。我一直无法让它工作,是否可以使用我的电脑的麦克风进行录制?如果是这样,我做错了什么?
【问题讨论】:
标签: android audio emulation recording
我没有安卓手机,但无论如何我都在尝试开发它。目前测试我的应用程序的唯一方法是使用模拟器,我读过它不支持录音。但是,我读到了启动命令“-audio”,它允许使用“winaudio”后端从您的电脑输入/输出音频。我一直无法让它工作,是否可以使用我的电脑的麦克风进行录制?如果是这样,我做错了什么?
【问题讨论】:
标签: android audio emulation recording
据我的所知:为了能够使用 MediaRecorder,您需要构建整个源,以便您可以使用录制工具以及您提到的选项。 p>
. build/envsetup.shlunch 1(即选择通用选项,而不是模拟器)make -j<number> 其中number = 你的电脑支持的#cores;排除尖括号cd out/target/.../generic, ... 表示通向通用路径的其余部分;将环境变量 ANDROID_PRODUCTION_OUT 设置为此目录。这应该是理想的工作。
默认 sdk 不支持您的用例,正如您在此处正确提到的那样。
【讨论】:
至少可以在 Windows 7 上的标准 2.3.3 模拟器中录制音频;我已经尝试过了,它有效。但是,就我而言,录制的音频听起来确实有点奇怪(慢)。我没有调查原因。
您需要为模拟器添加录音+播放支持(Android SDK 和 AVD 管理器 -> 虚拟设备 -> 编辑 -> 硬件 -> 新建)。然后使用 [MediaRecorder API][1] 进行录制 (MediaRecorder.AudioSource.MIC)。
代码是:
fMediaRecorder= new MediaRecorder();
fMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
fMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
fMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
fMediaRecorder.setAudioChannels(1);
fMediaRecorder.setAudioSamplingRate(8000);
fMediaRecorder.setOutputFile(fTmpFile.getAbsolutePath());
fMediaRecorder.prepare();
fMediaRecorder.start();
你还需要
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
在你的AndroidManifest.xml
对我有用,但音频失真。
【讨论】:
没有。无法使用模拟器录制声音。您必须编写程序的逻辑代码,然后将实际的 apk 部署到您的手机上,以测试其功能。
请查看此链接,因为它有我评论的官方参考:http://developer.android.com/intl/es/guide/topics/media/audio-capture.html
【讨论】:
【讨论】: