在 Xamarin UWP 中创建包后,视频只能用语音播放,我看不到视频

After Creating Package in Xamarin UWP, Video is Playing Only With Voice, I am Not able to see Video

我正在使用最新版本的 MediaManager 插件播放视频。当我 运行 应用程序处于调试模式时一切正常,但是当我为 window 创建程序包时,视频不显示,只能听到声音。

我正在使用下面的包

Plugin.MediaManager.Forms

这是我的 XAML 页面

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Digi_Sign.Views.MediaScreen"
             xmlns:forms="clr-namespace:MediaManager.Forms;assembly=MediaManager.Forms"
             BackgroundColor="Black">
    <ContentPage.Content>
        <Grid x:Name="stkLayout" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand" BackgroundColor="Black">
            <forms:VideoView VideoAspect="AspectFill"  x:Name="videoPlayer" ShowControls="False"  />
             </Grid>
    </ContentPage.Content>
</ContentPage>

CS 页面

CrossMediaManager.Current.Play(fileName);

包错误日志中没有发现错误,正如我提到的,在调试模式下一切正常,但在发布模式下不工作

从您描述的行为(以及查看您的代码)来看,很可能是因为视频未在 UI 线程上 运行,这会导致应用播放音频但不播放视频。所以将其更改为以下内容:

Device.BeginInvokeOnMainThread(() => { CrossMediaManager.Current.Play(fileName); });

在xamrin.UWP的原生代码中基本上没有办法初始化视频的渲染器,所以我们需要在UWP平台的App.xaml.cs中手动加载渲染程序集来初始化它

下面是我的代码,其中我在 OnLaunched() 中加载程序集文件并替换现有的 Xamarin.Forms.Forms.Init()

  protected override void OnLaunched(LaunchActivatedEventArgs e)
        {
            Windows.UI.Xaml.Controls.Frame rootFrame = Window.Current.Content as Windows.UI.Xaml.Controls.Frame;
            if (rootFrame == null)
            {

                rootFrame = new Windows.UI.Xaml.Controls.Frame();
                rootFrame.NavigationFailed += OnNavigationFailed;

                List<Assembly> assembliesToAdd = new List<Assembly>();
                assembliesToAdd.Add(typeof(VideoViewRenderer).GetTypeInfo().Assembly);
                Xamarin.Forms.Forms.Init(e, assembliesToAdd);


                // Place the frame in the current Window
                Window.Current.Content = rootFrame;
            }

            if (rootFrame.Content == null)
            {
                rootFrame.Navigate(typeof(MainPage), e.Arguments);
            }

            Window.Current.Activate();
        }

更多详情,请看这里link。在哪里可以找到更多解释。

https://forums.xamarin.com/discussion/119451/crossmedia-works-in-debug-but-not-in-release-for-uwp-error-msg-about-onecore