我想在UWP中使用StartRecordingToFileAsync函数

时间:2019-09-16 04:21:06

标签: c# uwp windows-10 windows-10-universal

我想在UWP中使用AppRecordingManager录制屏幕音频。

我在AppRecordingManager类中发现了StartRecordingToFileAsync函数,用于在UWP中写入音频和视频内容。

这是有关此功能的官方文档URL: https://docs.microsoft.com/en-us/uwp/api/windows.media.apprecording.apprecordingmanager.startrecordingtofileasync#Windows_Media_AppRecording_AppRecordingManager_StartRecordingToFileAsync_Windows_Storage_StorageFile_

尽管我尝试使用此功能来录制音频,但我始终不断收到此错误: 该请求在当前状态下无效。 (HRESULT的异常:0xC00D36B2)

我找不到StartRecordingToFileAsync的解决方案。

如何解决此错误?

这是我的C#代码给我这个错误。

AppRecordingManager manager = AppRecordingManager.GetDefault();
var status = manager.GetStatus();
if (status.CanRecord || status.CanRecordTimeSpan)
{

    var myVideo = await Windows.Storage.StorageLibrary.GetLibraryAsync(Windows.Storage.KnownLibraryId.Videos);
    StorageFolder projectFolder = await myVideo.SaveFolder.CreateFolderAsync("DataFolder", CreationCollisionOption.OpenIfExists);

    var audio = await projectFolder.CreateFileAsync("audio_record.wav", CreationCollisionOption.GenerateUniqueName);

    var result = await manager.StartRecordingToFileAsync(audio);

    if (result.Succeeded)
    {
        Debug.WriteLine(result.Succeeded);
    }
    else
    {
        Debug.WriteLine(result.ExtendedError.Message);
    }



}

1 个答案:

答案 0 :(得分:0)

我设法用您的代码重现同样的错误。

但是当我将“ audio_record.wav”更改为“ audio_record.mp4”时,它可以正常工作,并将视频保存到指定位置。

由于documentation指出StartRecordingToFileAsync“写入当前应用程序的音频和视频内容”,因此您可能无法仅使用该方法保存音频。