我正在编写一个应用程序,基本上只是测试我们是否可以从麦克风获得任何东西.
它适用于几个Android设备,但不适用于LG Optimus.我每次打电话MediaRecorder.getMaxAmplitude给LG都会返回0.
设备录制成功,因为我可以收听录音.
getMaxAmplitude返回自您上次调用它以来的最大幅度.
因此,第一次调用它时,它会自动初始化(因此返回0),它应该返回另一个值.根据文件:
getMaxAmplitude()返回自上次调用此方法以来采样的最大绝对幅度.只在setAudioSource()之后调用它.
返回自上次调用以来测量的最大绝对幅度,或第一次调用时的0
或者,如果您正确使用它,您会遇到与我相同的问题.我的代码适用于galaxyTab 7(Froyo),但不适用于10.1(Honeycomb).
编辑:我修复了我的问题(我希望它也会帮助你).确保第一次调用getMaxAmplitude时,为了初始化它,首先调用start().我用了:
recorder.prepare();
recorder.getMaxAmplitude();
recorder.start();
//listening to the user
int amplitude = recorder.getMaxAmplitude();
Run Code Online (Sandbox Code Playgroud)
什么时候应该是:
recorder.prepare();
recorder.start();
recorder.getMaxAmplitude();
//listening to the user
int amplitude = recorder.getMaxAmplitude();
Run Code Online (Sandbox Code Playgroud)
编辑:这段代码似乎仍有缺陷.例如,此代码似乎不适用于S2.它会返回0.但是我只调用了两次getMaxAmplitude(),所以如果你需要每秒更新幅度,那么它可能没问题.
| 归档时间: |
|
| 查看次数: |
4173 次 |
| 最近记录: |