1
我有一個媒體播放器必須播放項目列表。用戶可以選擇其中一個,所以項目必須可選,另一方面,他們都可以按順序播放。但是當我按順序排隊時,看到那個madia球員跳過了一些物品。例如;媒體元素跳過播放列表中的某些項目
1 -> is played
2 -> is played
3 -> is skipped
4 -> is played
5 -> is skipped
6 -> is skipped
7 -> is skipped
8 -> is played
我無法理解這個問題的原因。有想法嗎?
這是我的媒體元素;
<StackPanel x:Name="PlayerStackPanel" Orientation="Horizontal">
<MediaElement x:Name="Player"
MediaOpened="Player_MediaOpened"
MediaEnded="Player_OnMediaEnded">
</MediaElement>
</StackPanel>
選擇第一項後,選擇已更改的代碼運行;
void ItemListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (this.UsingLogicalPageNavigation()) this.InvalidateVisualState();
PlayView();
selectedItem = sender as Selector;
ContentItem pc = (ContentItem)selectedItem.SelectedItem;
if (pc != null && !string.IsNullOrEmpty(pc.AudioFilePath))
{
Player.Source = new Uri(this.BaseUri, "../Assets/" + pc.AudioFilePath);
Player.Play();
}
else
Player.Source = null;
}
當第一個音頻項目結束,Player_OnMediaEnded方法被稱爲 我想增加的selectedIndex編程,這件事之後,選擇再次改變運行。
private void Player_OnMediaEnded(object sender, RoutedEventArgs e)
{
ticks.Stop();
ticks.Tick -= ticks_Tick;
Player.Stop();
if (this.itemListView.SelectedIndex != contentItems.Count-1)
this.itemListView.SelectedIndex += 1;
}
隨着調試,看到,一個音頻文件結束後,被稱爲不止一個。而且這個通話計數也在不斷變化。
爲什麼我的代碼會產生這種行爲?