我会提到这不是Windows的问题。我不知道Mac或iOS。在Windows上它只是工作。
我想在Maui Community工具包的Media Player中启用滑动手势。Android内部使用的播放器是Exoplayer。exoplayer github团队已经公开表示,阻止手势是有意的。
如果我禁用媒体控件,滑动手势将起作用。如果我启用媒体控件,它将不起作用。我希望以某种方式覆盖媒体控件,并启用自定义控件以恢复手势。我还希望同时停止视频。我希望向右滑动以导航回上一页。
无法正常工作的示例代码:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:viewmodel="clr-namespace:NerdNewsNavigator2.ViewModel"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
x:Class="NerdNewsNavigator2.View.PlayPodcastPage"
x:DataType="viewmodel:PlayPodcastViewModel"
Shell.NavBarIsVisible="False"
Title="">
<Shell.BackButtonBehavior>
<BackButtonBehavior IsEnabled="True" IsVisible="{OnPlatform Android=False,iOS=False, WinUI=True}">
</BackButtonBehavior>
</Shell.BackButtonBehavior>
<FlexLayout>
<FlexLayout.GestureRecognizers>
<SwipeGestureRecognizer
Direction="Right"
Swiped="SwipedGesture" />
</FlexLayout.GestureRecognizers>
<toolkit:MediaPlayer
IsVisible="True"
ShouldAutoPlay="True"
ShouldKeepScreenOn="True"
ShouldShowPlaybackControls="True"
Source="{Binding Url}">
</toolkit:MediaPlayer>
</FlexLayout>
</ContentPage>
这段代码在Windows上的工作原理和上面列出的完全一样。在Android上则不然。如果我将ShouldShowPlaybackControls设置为false,它在Android上确实有效。我希望有媒体控制,并且能够向右滑动。
我一直无法找到解决这个问题的方法。我不知道从哪里开始。我相信我需要覆盖exoplayer控制,因为它阻止了滑动手势。我不知道如何做到这一点。
1条答案
按热度按时间vshtjzan1#
作为一种解决办法,将MediaPlayer放入网格中。
然后可以在它上面覆盖另一个元素。
为了让控制装置仍然工作,不要盖住它们。
类似这样(我假设媒体控件位于底部,高度为50):