Я новичок в UWP. Я пытаюсь записать звук из фонового потока через MediaCapture API.
Мой код здесь:
public sealed class Recorder : IBackgroundTask
{
private BackgroundTaskDeferral _deferral;
private readonly MediaCapture mediaCapture = new MediaCapture();
public async void Run(IBackgroundTaskInstance taskInstance)
{
_deferral = taskInstance.GetDeferral();
MediaCaptureInitializationSettings settings = new MediaCaptureInitializationSettings()
{
StreamingCaptureMode = StreamingCaptureMode.Audio,
};
await mediaCapture.InitializeAsync(settings);
var profile = MediaEncodingProfile.CreateWav(AudioEncodingQuality.Auto);
profile.Audio = AudioEncodingProperties.CreatePcm(16000, 1, 16);
await StartRecordAsync(profile);
_deferral.Complete();
}
private async Task StartRecordAsync(MediaEncodingProfile profile)
{
while(true)
{
StorageFolder storageFolder = ApplicationData.Current.LocalFolder;
StorageFile storageFile = await storageFolder.CreateFileAsync(Guid.NewGuid() + ".wav", CreationCollisionOption.ReplaceExisting);
await mediaCapture.StartRecordToStorageFileAsync(profile, storageFile);
Task.Delay(10000).Wait();
await mediaCapture.StopRecordAsync();
}
}
}
Он записывает файлы .wav по 10 секунд, но когда я проигрываю эти файлы, я ничего не слышу. Каждый файл имеет размер 310 КБ+, поэтому он не равен 0 байтам. Кто-нибудь знает, почему это произошло?