Android 编码为PCM浮点时无法读取录音
无论我做什么,我都无法让Android AudioRecord类与Pcm Float一起工作 这是我的密码:Android 编码为PCM浮点时无法读取录音,android,xamarin,audiorecord,Android,Xamarin,Audiorecord,无论我做什么,我都无法让Android AudioRecord类与Pcm Float一起工作 这是我的密码: public AndroidAudioDriver(Sensor sensor, int desiredSampleRate) { _sensor = sensor; if (!InitialiseSampleRate(desiredSampleRate)) { throw new NotSupportedException("No suppor
public AndroidAudioDriver(Sensor sensor, int desiredSampleRate)
{
_sensor = sensor;
if (!InitialiseSampleRate(desiredSampleRate))
{
throw new NotSupportedException("No supported audio sample rates found");
}
recorder = new AudioRecord(AudioSource.Mic, SampleRate, ChannelIn.Mono, Encoding.PcmFloat, _bufferSize);
_recorder.StartRecording();
var res = _recorder.Read(_audioData, 0, (int)(SampleRate * _readPortion));
}
private bool InitialiseSampleRate(int rate)
{
for (int i = rate; i < 48000; i += 100)
{ // add the rates you wish to check against
_bufferSize = AudioRecord.GetMinBufferSize(i, ChannelIn.Mono, Encoding.Pcm16bit) * 10;
if (_bufferSize > 0)
{
_audioData = new byte[_bufferSize];
SampleRate = i;
return true;
}
}
return false;
}
_recorder.read始终返回-3,根据错误\u无效\u操作。同样的代码适用于Pcm-16位。我不知道无效的操作是什么,我也看不到logcat中有任何错误
谢谢
从API M开始的录音和从API棒棒糖开始的音轨支持编码\u PCM\u浮点
因此,在您的API-21/API-22设备上,您将无法使用PcmFloat
API-23棉花糖增加了对PcmFloat音频录制的支持
从API M开始的录音和从API棒棒糖开始的音轨支持编码\u PCM\u浮点
因此,在您的API-21/API-22设备上,您将无法使用PcmFloat
API-23棉花糖添加了对PcmFloat for AudioRecord的支持。要将PcmFloat与AudioRecord一起使用,必须使用过载: AudioRecord.Readfloat[],偏移量,计数,读取类型
问题是我给它传递了一个字节[],它似乎只适用于Pcm8bit和Pcm16bit。要将PcmFloat与录音一起使用,必须使用重载: AudioRecord.Readfloat[],偏移量,计数,读取类型
问题是我给它传递了一个字节[],它似乎只适用于Pcm8bit和Pcm16bit。您测试的设备API级别是什么?最低版本是API 21,使用Android 7.1编译,使用API 23在手机上运行。在您的API-21/API-22设备上,当您使用AudioRecord时,您将无法使用PcmFloat。文档说明,PcmFloat已添加到API 21中?API-21中的AudioTrack L已添加,支持PcmFloat,但是AudioRecord直到API-23M才得到它,您测试的设备API级别是什么?最低版本是API 21,使用Android 7.1编译,在带有API 23的手机上运行。在您的API-21/API-22设备上,当使用AudioRecord时,您将无法使用PcmFloat。文档说明,PcmFloat是在API 21中添加的?API-21 L中的AudioTrack添加了对PcmFloat的支持,但直到API-23 MI将最低版本更改为API 23,AudioRecord才获得它,仍然得到相同的-3错误代码。我将最低版本更改为API23,仍然得到相同的-3错误代码。