Android模拟器可以使用PC硬件录制和播放音频吗?

Ste*_*eve 10 audio android emulation recording

我没有安卓手机,但无论如何我都在努力开发它.目前测试我的应用程序的唯一方法是使用我读过的不支持录音的模拟器.但是,我读到了启动命令"-audio",它允许使用'winaudio'后端从你的电脑输入/输出音频.我无法让它工作,是否可以使用我的电脑的麦克风录音?如果是这样,我做错了什么?

Ber*_*sio 9

是的,它可以。在 Mac OSX 上,您必须在模拟器设置中设置麦克风,打开后

当模拟器打开时,在右侧栏(音量按钮所在的位置)上,单击三个点(列表的最后一个按钮)以打开模拟器设置。

在此处输入图片说明

在设置屏幕(称为“扩展控件”)上,选择麦克风并打开选项“虚拟麦克风使用主机音频输入”。

在此处输入图片说明


小智 7

至少在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();
Run Code Online (Sandbox Code Playgroud)

你还需要

<uses-permission android:name="android.permission.RECORD_AUDIO"/> 
Run Code Online (Sandbox Code Playgroud)

在你的 AndroidManifest.xml

适合我,但音频失真.


Mno*_*Mno 2

所知:为了能够使用 MediaRecorder,您需要构建整个源代码,以便您可以使用录制工具以及您提到的选项。

  • 获取您所针对的 Android 版本的源代码。
  • 通过以下方式构建通用图像:
    1. . build/envsetup.sh
    2. lunch 1(即选择通用选项,而不是模拟器)
    3. make -j<number>其中number=您的电脑支持的#cores;排除尖括号
  • cd out/target/.../generic, ... 表示到达 generic 的其余路径;将环境变量 ANDROID_PRODUCTION_OUT 设置为此目录。
  • 使用 -audio 选项从 out/host/.../bin 目录运行模拟器。

理想情况下这应该有效。

正如您在此处正确提到的那样,默认 sdk 不支持您的用例。