我想在我的应用中录制声音时显示进度指示器。 分配给记录的时间量是预定义的。我将其设置为代码,可以说最长录制时间为10秒,但是用户可以在更短的时间内停止录制,当然进度指示器将停止并重置。
我一直在努力使其正常运行,请您提供一些指导。 注意:我正在使用NateRickard AudioRecorder nuget包。
if (!recorder.IsRecording)
{
buttonRecord.IsEnabled = false;
buttonPlay.IsEnabled = false;
DependencyService.Get<IAudioService>().PrepareRecording();
// start recording
var recordTask = await recorder.StartRecording();
// set up progress bar
//progressBarRecordTime.Progress = 1.0;
//await progressBarRecordTime.ProgressTo(1.0, 10000, Easing.Linear);
buttonRecord.Text = "Stop Recording";
buttonRecord.IsEnabled = true;
// get the recorded file
var recordedAudioFile = await recordTask;
buttonRecord.Text = "Record";
buttonPlay.IsEnabled = true;
if (recordedAudioFile != null)
{
var recordingFileDestinationPath = Path.Combine(FileSystem.AppDataDirectory, AppConstants.CUSTOM_ALERT_FILENAME);
if (File.Exists(recordingFileDestinationPath))
{
File.Delete(recordingFileDestinationPath);
}
File.Copy(recordedAudioFile, recordingFileDestinationPath);
}
}
答案 0 :(得分:0)
在您的xaml代码(视图)中放置一个 ActivityIndicator (将其命名为 ind )
在上面的代码顶部:
ind.IsRunning = true;
//
if (!recorder.IsRecording)
//
完成后,将其添加到代码下方
//
}
File.Copy(recordedAudioFile, recordingFileDestinationPath);
}
}
ind.IsRunning = false;