为什么 MediaElement 不适用于存储在我的 Google Drive 上的 .MP4 文件?

问题描述 投票:0回答:0

使用 MAUI 社区工具包的 MediaElement 时,无法播放存储在我的 Google Drive 上的音频文件 (.MP4)。

我正在按如下方式实现 MediaElement 功能:

在我的 XAML 中,我有以下内容:

<toolkit:MediaElement x:Name="mediaElement" Grid.Row="0" Source="{Binding MediaFile}" ShouldAutoPlay="True" /\>

MediaElement在我的xaml.cs cde中定义如下:

public partial class Level3Page : ContentPage
{
    readonly Level3ViewModel _viewModel;
     
    public static MediaElement MediaControlA { get; private set; }

    public Level3Page()
    {
        InitializeComponent();
        
        MediaControlA = mediaElement;
       
        BindingContext = _viewModel = new Level3ViewModel(this);
    } 
}

以下是我的 ViewModel 中的 C# 代码,用于从 Google Drive 获取文件详细信息并使用 MediaElement Play 方法:

Level3Page.MediaControlA.Play()

request.Spaces = "drive";
request.Fields = "files(id,name)";
var result = await request.ExecuteAsync();
if (result.Files != null && result.Files.Any())
{
    var folder = result.Files.First();
    var fileName = "G010.mp3";
    //var fileName = GlobalVars.AudioFile + ".mp3";
    request = Service.Files.List();
    request.Q = $"mimeType!='application/vnd.google-apps.folder' and name='{fileName}' and '{folder.Id}' in parents";
    request.Fields = "files(id,name)";
    result = await request.ExecuteAsync();
    if (result.Files != null && result.Files.Any())
    {
        var FName1 = result.Files.First().Name;
        MediaFile = "https://drive.google.com/file/d/" + result.Files[0].Id;
        Level3Page.MediaControlA.Play();

我从 MediaElement 收到以下错误:

[0:] MediaManager:错误:错误代号:ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED,错误消息:源错误

我知道

result.Files[0].Id
的值是正确的,因为当我将 MediaFile URL 内容复制并粘贴到我的网络浏览器中时,音频文件播放没有任何问题。

有人可以建议问题可能是什么吗?

c# xaml maui-community-toolkit
© www.soinside.com 2019 - 2024. All rights reserved.