请帮助解决问题。要录制音频文件,我使用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);
}
}
答案 0 :(得分:1)
此问题无法通过代码解决,似乎是硬件问题。
您可以在默认的“相机”应用中看到相同的延迟,该应用也使用MediaRecorder
。
不幸的是,某些设备的行为会有所不同。
解决方案是使用AudioRecorder
类,因为它更接近于硬件,因此更加灵活
答案 1 :(得分:0)
为自己找到了解决方案。以下代码正在运行,可能对某人有用。
$(tableBody).find('tr').each(function () {
if ($(this).find('input:checkbox').prop("checked") == true) {
resultList.fill(parseInt($(this).find('input:checkbox').attr('result-id')));
}
});