Kişisel Sayfaları
İlgi Alanları
İş Tecrubesi
Eğitim Geçmişi
Sertifikalar & Başarılar
Kullanıcıya ait test sonucu bulunmamaktadır.
Dil Becerileri
Son Forum Aktiviteleri
4MediaElement'e Seekbar nasıl eklerim
Merhaba arkadaşlar ben windows phone 8 üzerinde media uygulaması geliştirmekteyim. MediaElement üzerinde kontroller bulunmadığı için oynattığım medyayı ileri alamıyorum. Bunu kendi içinde olan MediaPlayerLauncher ile yapabiliyorum, fakat MediaElement üzerinde olmuyor. Kendim Slider ekleyip birşeyler yapmaya çalıştım sadece ileri ve geri atlamayı yapabildim ama video oynadıkca Slider'ın ilerlemesini yapamadım yardımcı olursanız sevinirim.
Bu benim Playerım:
Buda istediğim şekilde olan MediaPlayerLauncher:
Bunlarda kodlarım
Xaml:
[code]
<Grid x:Name="LayoutRoot" Background="Transparent"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <!--TitlePanel contains the name of the application and page title--> <!--ContentPanel - place additional content here--> <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <MediaElement x:Name="player1" MediaOpened="player1_MediaOpened" CurrentStateChanged="player1_CurrentStateChanged" /> <ListBox x:Name="alternatifliste" FontSize="20" FontStyle="Italic" FontWeight="Bold" Foreground="White" Margin="677,98,10,153" SelectionChanged="alternatifliste_SelectionChanged" /> </Grid> <Button x:Name="play" Content="play" HorizontalAlignment="Left" Margin="94,336,0,0" Grid.Row="1" VerticalAlignment="Top" Click="play_Click"/> <Button x:Name="stop" Content="stop" HorizontalAlignment="Left" Margin="331,336,0,0" Grid.Row="1" VerticalAlignment="Top" Click="stop_Click"/> <Slider Name="timelineSlider" Margin="0,68,0,244" Grid.Row="1" ValueChanged="timelineSlider_ValueChanged" /> </Grid>
[/code]
Cs:
[code]private void player1_MediaOpened(object sender, RoutedEventArgs e)
{ TimeSpan ts = player1.NaturalDuration.TimeSpan; timelineSlider.Maximum = ts.TotalSeconds; timelineSlider.SmallChange = 1; timelineSlider.LargeChange = Math.Min(10, ts.Seconds / 10); }
private void seekBar_DragCompleted(object sender, DragCompletedEventArgs e)
{
player1.Position = TimeSpan.FromSeconds(timelineSlider.Value);
}
private void timelineSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
player1.Position = TimeSpan.FromSeconds(timelineSlider.Value);
} private void player1_CurrentStateChanged(object sender, RoutedEventArgs e)
{
Yapmaya çalışıp yapamadığım bölüm(medya oynadıkça sliderın hareket etmesi)
//timelineSlider.Value = player1.Position.Seconds;
}
[/code]
MediaElement'e Seekbar nasıl eklerim
Kendi soruma kendim cevap vereyim diğer arkadaşlarda faydalansın, bunlar xaml kodları,slider için tasarım kullandım ayrıntılı bilgi burda:http://stackoverflow.com/questions/25915811/how-to-add-mediaelement-seek-bar/25926077#25926077
[code] <MediaElement x:Name="player1" MediaOpened="player1_MediaOpened" CurrentStateChanged="player1_CurrentStateChanged_1" />
<Canvas x:Name="playercontrolcanvas" Margin="0,327,0,0" >
<Canvas.Background>
<SolidColorBrush Color="#FF4B4B4B" Opacity="0.03"/>
</Canvas.Background>
<Slider x:Name="timelineSlider" Style="{StaticResource Chubs_SliderStyle}" VerticalAlignment="Bottom" ManipulationCompleted="timelineSlider_ManipulationCompleted" Width="800" Canvas.Top="80" >
<Slider.Background>
<SolidColorBrush Color="#FF1F1F1F" Opacity="0.5"/>
</Slider.Background>
</Slider>
<TextBlock x:Name="time" Grid.Row="1" TextWrapping="Wrap" Text="00:00" HorizontalAlignment="Left" VerticalAlignment="Top" Canvas.Left="37" Canvas.Top="121">
<TextBlock.Foreground>
<SolidColorBrush Color="White" Opacity="0.5"/>
</TextBlock.Foreground>
</TextBlock>
</Canvas>[/code]
[code]
private void player1_MediaOpened(object sender, RoutedEventArgs e)
{
TimeSpan ts = player1.NaturalDuration.TimeSpan;
timelineSlider.Maximum = ts.TotalSeconds;
timelineSlider.SmallChange = 1;
timelineSlider.LargeChange = Math.Min(10, ts.Seconds / 10);
SetupTimer();
}
private void seekBar_DragCompleted(object sender, DragCompletedEventArgs e)
{
player1.Position = TimeSpan.FromSeconds(timelineSlider.Value);
}
private DispatcherTimer _timer;
private void SetupTimer()
{
_timer = new DispatcherTimer();
_timer.Interval = TimeSpan.FromSeconds(0.250);
StartTimer();
}
private bool _sliderpressed = false;
private void _timer_Tick(object sender, object e)
{
if (!_sliderpressed)
{
timelineSlider.Value = player1.Position.TotalSeconds;
TimeSpan t = TimeSpan.FromSeconds(player1.Position.TotalSeconds);
string suankisure = string.Format("{0:D2}:{1:D2}:{2:D2}",
t.Hours,
t.Minutes,
t.Seconds);
TimeSpan nd = TimeSpan.FromSeconds(player1.NaturalDuration.TimeSpan.TotalSeconds);
string toplamsure = string.Format("{0:D2}:{1:D2}:{2:D2}",
nd.Hours,
nd.Minutes,
nd.Seconds);
time.Text = suankisure + "/" + toplamsure;
}
}
private void StartTimer()
{
_timer.Tick += _timer_Tick;
_timer.Start();
}
private void StopTimer()
{
_timer.Stop();
_timer.Tick -= _timer_Tick;
}
private void timelineSlider_ManipulationCompleted(object sender, System.Windows.Input.ManipulationCompletedEventArgs e)
{
player1.Position = TimeSpan.FromSeconds(timelineSlider.Value);
}
private void player1_CurrentStateChanged_1(object sender, RoutedEventArgs e)
{
if (player1.CurrentState == MediaElementState.Playing)
{
if (_sliderpressed)
{
_timer.Stop();
}
else
{
_timer.Start();
}
}
else if(player1.CurrentState == MediaElementState.Paused)
{
_timer.Stop();
}
else if (player1.CurrentState == MediaElementState.Stopped)
{
_timer.Stop();
}
else if (player1.CurrentState == MediaElementState.Closed)
{
_timer.Stop();
}
}
[/code]
Buda görüntüsü:
LongListSelector list item erişimi sorunu
Merhaba, aynı sorunu bende yaşamıştım ve malesef türkçe kaynaklar yerine yabancı kaynaklar üzerinden çözüm bulabilmiştim. İlk olarak soruyu doğru anladım mı teyit edelim. Senin bir longlistselector'ün var. içinde şu veriler olsun:
A
ali
ayşe
B
Burak
C
Caner
Canan
Sen mesela C harfi altında
olan Canere tıkladın, tıkladığın yerin adını istiyorsun yani "Caner" yazmasını, değil mi?
LonglistSelectorun itemlerini Binding ile girmeniz gerekiyor, yani bir List oluşturup onu LongListSelectorun ItemTemplate'ine static olarak eklemeniz gerekmektedir(ItemTemplate="{StaticResource list1}"), ve item bilgilerini ekleyebileceğiniz bir class oluşturmanız lazım.
Eğer öyleyse ben şu şekilde çözüm buldum:
-
LongListSelectorun SelectionChanged eventini oluşturun
private async void longlist_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (longlist.SelectedItem == null)
return;
int secilenindex = DiziBilgileriList.IndexOf(dizilonglist.SelectedItem as DiziBilgileri);
//itemlerin adını dizilistesi isimli listbox içinden alıyordum, burda kaçıncı iteme tıklandığını bulup aynı indexe sahip dizilistesi itemini göstertiyorum:MessageBox.Show(dizilistesi.Items[selectedIndex].ToString());
}
Ben bu şekilde yapıyorum, onun dışında bir örnek dosyası var onu incelemen için yüklüyorum:
http://speedy.sh/5Dbkc/A-zGropedLongListSelectorApp.rar
Turkcell Mobil Veritabanı kullanımı hk.
Aynı soruyu bende soruyorum, veritabanına veri girişi yapıp veri çekme olayını nasıl yapabilirim?