请帮助解决问题。要录制音频文件,我使用Android.Media.MediaRecorder。结果,在文件的开头和结尾,我得到了一个静音时间为650毫秒的节。结果发现,短语的开头和结尾部分没有记录,只有静音。
public static async Task Record(CancellationToken token)
{
try
{
var filename = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal) + "/temp.amr";
var tmp = new Java.IO.File(filename);
if (tmp.Exists()) tmp.Delete();
var recorder = new MediaRecorder();
recorder.SetAudioSource(AudioSource.Mic);
recorder.SetOutputFormat(OutputFormat.AmrNb);
recorder.SetAudioEncoder(AudioEncoder.AmrNb);
recorder.SetOutputFile(filename);
recorder.Prepare();
recorder.Start();
try
{
var div = MAX_RECORD_TIME / 100;
for(int i=0; i<div; i++)
{
IncrementProgressBar(100 / div);
await Task.Delay(div, token);
}
fSave = true;
}
catch (OperationCanceledException) { }
recorder.Stop();
}
catch (Exception e)
{
string s = context.GetText(Resource.String.err_unexpected) + "\r" + e.Message;
handler.ToastMessage(s, ToastLength.Short);
}
}
AudioRecorder
类,因为它更接近于硬件,因此它现在更加灵活