Как получить доступ к потоку контента Microsoft Graph DriveItem (Video) для использования с MediaPlayerElement (с помощью Graph .NET SDK) - PullRequest
0 голосов
/ 14 апреля 2019

Используя Microsoft Graph .NET SDK, я пытаюсь получить доступ к потоку контента DriveItem, который является видео, чтобы его можно было воспроизвести в UWP MediaPlayerElement. Однако при развертывании MediaPlayerElement отображает:

'Ошибка: неподдерживаемый тип видео или неверный путь к файлу'.

Я могу получить доступ к Microsoft Graph с помощью Windows Community Toolkit и получить разрешение Files.ReadWrite.All. Я также получил DriveItem id как требуется.

private async void LoadVideo(DriveItem driveItem) {
    var graphClient = MicrosoftGraphService.Instance.GraphProvider;

    using(Stream responseStream = await graphClient
        .Me
        .Drive
        .Items[driveItem.Id]
        .Content
        .Request().GetAsync()) {
        var memoryStream = responseStream as MemoryStream;
        if (responseStream != null) {
            // Breakpoint on this line is reached after 
            // a substantial delay on the using statement 
            // line. At this line, the memoryStream has a value of 89400353.
            MyMPE.Source = MediaSource
                .CreateFromStream(memoryStream
                    .AsRandomAccessStream(), "video/mp4");
        } else {
            ...
        }
    }
}

Оператор if всегда выполняется. Когда я помещаю точку останова в начало строки MyMPE.Source…, оператор using существенно задерживается до того, как точка останова будет достигнута. MediaPlayerElement затем отображает ошибку «Ошибка: неподдерживаемый тип видео или неверный путь к файлу» в нижней части проигрывателя.

...