c# - CarouselView 中的视频问题
问题描述
嘿,所以我在每个单元格中设置了一个带有视频的 CarouselView
<CarouselView
x:Name="TheCarousel">
<CarouselView.ItemTemplate>
<DataTemplate>
<StackLayout
HorizontalOptions="Center">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="6*"/>
</Grid.RowDefinitions>
<Label FontSize="Title" HorizontalOptions="Center" HorizontalTextAlignment="Center" Text="{Binding Name}" VerticalOptions="Center" />
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="8*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackLayout Grid.Column="1">
<video:VideoPlayer Source="{Binding Uri}" HeightRequest="480"/>
</StackLayout>
</Grid>
</Grid>
</StackLayout>
</DataTemplate>
</CarouselView.ItemTemplate>
</CarouselView>
它正在工作,视频播放,但是当我滚动到另一个视频时,前一个视频会自行播放。例如,如果我暂停第一个视频,然后滚动到第二个视频,第一个视频将开始播放。我不确定为什么会这样。
任何帮助,将不胜感激。
解决方案
不知道你用的是哪个视频播放器,但我用的是 Octane.Xamarin.Forms.VideoPlayer,没有这个问题。
<CarouselView x:Name="TheCarousel" ItemsSource="{Binding videos}">
<CarouselView.ItemTemplate>
<DataTemplate>
<StackLayout HorizontalOptions="Center">
<Label
FontSize="Title"
HorizontalOptions="Center"
HorizontalTextAlignment="Center"
Text="{Binding title}"
VerticalOptions="Center" />
<o:VideoPlayer
AutoPlay="True"
DisplayControls="True"
FillMode="ResizeAspectFill"
Source="{Binding path}" />
</StackLayout>
</DataTemplate>
</CarouselView.ItemTemplate>
</CarouselView>
public partial class Page5 : ContentPage
{
public ObservableCollection<videomodel> videos { get; set; }
public Page5()
{
InitializeComponent();
videos = new ObservableCollection<videomodel>()
{
new videomodel(){path="https://sec.ch9.ms/ch9/a7e9/abda3d53-bed3-4f20-9f53-70047a35a7e9/Xamarin101WhatIsXamarin_high.mp4",title="title 2"},
new videomodel(){path="https://ia800201.us.archive.org/12/items/BigBuckBunny_328/BigBuckBunny_512kb.mp4",title="title 1"},
new videomodel(){path="https://sec.ch9.ms/ch9/3901/c6e0e4e6-bb93-4033-a484-040a874f3901/Xamarin101XamarinFormsMVVMXAML_high.mp4",title="title 3"}
};
this.BindingContext = this;
}
}
public class videomodel
{
public string path { get; set; }
public string title { get; set; }
}
}
推荐阅读
- tsql - 从sql字符串中提取数据
- ios - 同一个控制器在 Swift 中的第二个 VC 之前(以编程方式)加载两次?
- javascript - jQuery:修改文本区域中的 A 标签
- python - 为什么如果我删除 django forms.ModelForm 中的用户名字段,注册失败?
- java - 设计一种有效的算法来找到最小化平均距离的邮局位置
- php - 当用户未能勾选框时重置 reCaptcha - FormMail 和 fmbadhandler
- c# - 确定数组是否包含全零
- php - 如何按照 URL 重定向到最终位置?
- javascript - 如何将数组中的值转换为字符串并发送到 php?
- mysql - 在mysql中找到确切的值