Home >  > Win8 ئەپ دىتالى – تەشنا قويغۇچىسى 1.0

Win8 ئەپ دىتالى – تەشنا قويغۇچىسى 1.0

13

ئالدىنقى قىتىم بىلوگىمىزدا ئىپتىدايى ھالەتتىكى ئەپ قويغۇچنىڭ سىناق نۇسخىسىنى ئورتاقلاشقان ئىدۇق، تەپسىلاتى مانا :  Win8 ئاددىي فىلىم قويغۇچ ئەپ كودى  بۇ قىتىم ئاشۇ ئەپنى تېخىمۇ مۇكەممەللەشتۈرگەن ئاساستا تەشنا قويغۇچىسى 1.0 نەشىرىنى ھوزۇرۇڭلارغا سۇندۇم. ئەلۋەتتە بۇ پەقەت بىر ئۆگېنىش باسقۇچىدىكى ئەسەر ھېسابلىنىدۇ، شۇڭا يىتەرسىزلىكلەرنىڭ كۆپ بولۇشى نورمال. ئەمما پۈتۈن كودىنى ئۆزۈم نۆلدىن باشلاپ يازغاچقا، ھەم بىر تەرەپتىن ئۆگىنىۋاتقان بولغاچقا موشۇنچىلىك قىلالىدىم. قېنى ئاۋۋال كۆرۈنمە يۈزىنى كۆرۈپ باقايلى:

[t]دېتال كۆرۈنمە يۈزى ۋە ئىقتىدارلىرى[/t]

VedioPlayerيەنى يۇقىرىقى رەسىمدىكىدەك ئاددىيلا بىر مىترو ئەپ ھېسابلىنىدۇ. بۇ قىتىم ئاساسلىقى فىلىم توربەتلىرىنىڭ ئەپ دىتالى شەكلىدە ئۆزگەرتىشكە ئالاھىدە كۈچىدىم. يەنى مەزكۇر ئەپنى ئازغىنە ئۆزگەرتىش ئارقىلىق فىلىم توربەتلىرىنىڭ مۇلازىمىتىرىدىكى فىلىملەرنى بىۋاستە قويىدىغان قىلغىلى بولىدۇ. ئەلۋەتتە يەرلىكتىكى فىلىم ۋە مۇزىكىلارنىمۇ ئېچىپ قويۇشقا بولىدۇ.

1. ئەپ ئىقتىدارلىرى: يان تەرەپ تىزىملىكىدىكى فىلىملەرنى تاللاش ئارقىلىق ئىكىران قىسمىدا قويۇشقا بولىدۇ، سول تەرەپتە فىلىم چۈشەندۈرۈلىشى كۆرسىتىلىدۇ(نۆۋەتتە بۇلار Uri ئادرىس شەكلىدە يەرلىكتىكى ھۆججەت قىسقۇچلىرىدىن ئوقۇپ ئېلىنىدۇ، ئادرىسنى ئۆزگەرتسەكلا مۇلازىمىتىر ياكى تور بەتلەردىكى فىلىملەرنى ئوقۇپ ئېلىش تامامەن مومكىن). فىلىم چۈشەندۈرۈلىشى قىسمىدا فىلىم مۇقاۋا رەسىمى قوشۇپ كۆرسىتىلىدۇ؛ ئىكىران ئاستىدا باھا يوللاش كۆزنىكى بار(نۆۋەتتە ساندان مۇلازىمىتى ئۇلىمىغاچقا بۇ ئىقتىدار ئىشلىمەيدۇ)؛ ئاۋاز تەڭشەشكە، ئۈستى تەرەپتىكى قىسقۇچ بەلگىسىنى بېسىپ، كومپىيوتېرىمىزدىكى فىلىملەرنى ئېچىپ قويۇشقا بولىدۇ.

2. ئەپنىڭ نۆۋەتتىكى قوللايدىغان فىلىم فورماتلىرى: mp4, avi ۋە ئاۋاز ھۆججەتلىرىدىن mp3, wvm قاتارلىقلار (تېخىمۇ كۆپ فورمات قوللايدىغان قىلىش تامامەن مومكىن).

3. ئەپ ئىجرا مۇھىتى: Windows8, Windows8.1 قاچىلانغان كومپىيوتېر ياكى تاختا كومپىيوتېر(ئەلۋەتتە مەزكۇر دېتال ئەپ دۇكىنىغا چىقىرىلمىدى، خالىغانچە قاچىلاپ ئىشلەتكىلى بولمايدۇ، پەقەت VisualStudio2012, Visual Studio Express for Win8 قاتارلىقلار ياكى يۇقىرى نەشىرىىدىكى قورللار بىلەن  ئىجرا قىلىپ كۆرۈشكە بولىدۇ).

[t]دىتال مۇھىم كود تەھلىللىرى ۋە ھۆججەت چۈشۈرۈش[/t]

بۇ ئۆگېنىش باسقۇچىدىكى ئەسەر بولغاچقا ئەسلى كودىنى قىزىققۇچىلارغا تەمىنلەيمىز، شارائىتى، دېتال ئېچىش مۇھىتى سەپلەگلىك دوسلار چۈشۈرۈپ، ئىجرا قىلىپ كۆرسەڭلار بولىدۇ.

ئەپ #C تىلىدا يېزىلغان بولۇپ، ئاساسلىق ئىقتىدار كودلىرى تۆۋەندىكىدەك:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Imaging;
using Windows.UI.Xaml.Navigation;
// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238

namespace Video_Player
{
    /// 
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// 
    public sealed partial class MainPage : Page
    {
        #region Keng dyirlik miqdarlar
        private Dictionary videouri = new Dictionary();
        private Dictionary Description_uri = new Dictionary();
        DispatcherTimer ticks = new DispatcherTimer();
        List VideosList = new List();
        bool isplaying = false;
        bool ispaused = false;
        #endregion
        public MainPage()
        {
            this.InitializeComponent();
            #region APP qozghalghanda masqedemde yuklinidighan mezmunlar
            videouri.Add(0, "ms-appx:///Videos/video1.wmv");
            videouri.Add(1, "ms-appx:///Videos/video2.wmv");
            videouri.Add(2, "ms-appx:///Videos/video3.wmv");
            videouri.Add(3, "ms-appx:///Videos/video4.wmv");
            videouri.Add(4, "ms-appx:///Videos/video5.wmv");
            videouri.Add(5, "ms-appx:///Videos/video6.wmv");
            Description_uri.Add(0, "ms-appx:///Description/video1.txt");
            Description_uri.Add(1, "ms-appx:///Description/video2.txt");
            Description_uri.Add(2, "ms-appx:///Description/video3.txt");
            Description_uri.Add(3, "ms-appx:///Description/video4.txt");
            Description_uri.Add(4, "ms-appx:///Description/video5.txt");
            Description_uri.Add(5, "ms-appx:///Description/video6.txt");
            VideosList.Add(new ImageDescription { Title = "بىلىجانلار ئويناۋاتىدۇ", uri = "ms-appx:///Images/1.jpg" });
            VideosList.Add(new ImageDescription { Title = "تەبىئەتنىڭ گۈزەللىكى", uri = "ms-appx:///Images/2.jpg" });
            VideosList.Add(new ImageDescription { Title = "باللا ئويناۋاتىدۇ", uri = "ms-appx:///Images/3.jpg" });
            VideosList.Add(new ImageDescription { Title = "باھاردا گۈللەر ئېچىلدى", uri = "ms-appx:///Images/4.jpg" });
            VideosList.Add(new ImageDescription { Title = "خانقىز ماھارەتلىرىدىن", uri = "ms-appx:///Images/5.jpg" });
            VideosList.Add(new ImageDescription { Title = "سىمفونىيە", uri = "ms-appx:///Images/6.jpg" });
            VideoListView.ItemsSource = VideosList;
            #endregion
        }

        /// 
        /// Invoked when this page is about to be displayed in a Frame.
        /// 
        /// Event data that describes how this page was reached.  The Parameter
        /// property is typically used to configure the page.
        /// 
        #region Ishlar(Events)
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
        }

        //Sinni qoyush we qaytilash
        private void Play_Button_Click(object sender, RoutedEventArgs e)
        {
            if (ispaused == false && isplaying == false)
            {
                Initial_Display.Visibility = Visibility.Collapsed;
            }
            else if (ispaused == true && isplaying == false)
            {
                PlayView();
                VideoPlayer.Position = new TimeSpan(0, 0, 0, 0, (int)DurationSlider.Value);
                VideoPlayer.Play();
            }
        }

        // Tizimliktin tallanghan filimni qoyush
        private async void VideoListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            PlayView();
            VideoPlayer.Source = Index_to_Uri_Converter(VideoListView.SelectedIndex);
            Windows.Storage.StorageFolder folder = Windows.ApplicationModel.Package.Current.InstalledLocation;
            Windows.Storage.StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri(Description_uri[VideoListView.SelectedIndex]));
            string Des = await Windows.Storage.FileIO.ReadTextAsync(file);
            BitmapImage bt = new BitmapImage();
            bt.UriSource = new Uri(VideosList[VideoListView.SelectedIndex].uri);
            DescriptionImage.Source = bt;
            Description.Text = Des;

        }

        // Ilgirlesh tayaqchisi arqiliq sinni yotkep korush
        private void SeekToMediaPosition(object sender, RangeBaseValueChangedEventArgs e)
        {
            int slidervalue = (int)DurationSlider.Value;
            TimeSpan ts = new TimeSpan(0, 0, 0, 0, slidervalue);
            VideoPlayer.Position = ts;
        }

        // ilgirlesh tayaqchisi mas qedemlik waqit
        private void VideoPlayer_MediaOpened(object sender, RoutedEventArgs e)
        {
            DurationSlider.Maximum = VideoPlayer.NaturalDuration.TimeSpan.TotalMilliseconds;
            ticks.Interval = TimeSpan.FromMilliseconds(1);
            ticks.Tick += ticks_Tick;
            ticks.Start();
        }

        // Filim qoyulush waqti bilen mas qedemde ilgirlesh tayaqchisini yotkesh
        void ticks_Tick(object sender, object e)
        {
            DurationSlider.Value = VideoPlayer.Position.TotalMilliseconds;
            DurationText.Text = Milliseconds_to_Minute((long)VideoPlayer.Position.TotalMilliseconds);
        }

        // Filimni toxtitish
        private void Pause_Button_Click(object sender, RoutedEventArgs e)
        {
            PauseView();
            VideoPlayer.Pause();
        }

        private void OpenFileButton_Click(object sender, RoutedEventArgs e)
        {
            SetLocalMedia();
        }

        // Awaz tayaqchisi yotkelgende awaz qimmitini mas qedemde ozgertish
        private void VolumeSlider_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
        {
            VideoPlayer.Volume = (VolumeSlider.Value) / 100;
        }
        #endregion

        #region Fonkisiyeler(Functions)
        //Tallighan filim Uri adirisigha irishsh
        public Uri Index_to_Uri_Converter(int index)
        {
            var uri = new Uri(videouri[index]);
            return uri;
        }

        //Conversion of Milliseconds to Time Display Format
        public string Milliseconds_to_Minute(long milliseconds)
        {
            int minute = (int)(milliseconds / (1000 * 60));
            int seconds = (int)(milliseconds / 1000);
            return (minute + " : " + seconds); 
        }

        // Filimni toxtatqandin kiyinki halet
        public void PauseView()
        {
            isplaying = false;
            ispaused = true;
            Play_Button.Visibility = Visibility.Visible;
            Pause_Button.Visibility = Visibility.Collapsed;
            Play_ImageButton.Visibility = Visibility.Collapsed;
            Pause_ImageButton.Visibility = Visibility.Visible;
        }

        //Filim qoyuliwatqandiki halet
        public void PlayView()
        {
            Initial_Display.Visibility = Visibility.Collapsed;
            isplaying = true;
            ispaused = false;
            Play_Button.Visibility = Visibility.Collapsed;
            Pause_Button.Visibility = Visibility.Visible;
            Play_ImageButton.Visibility = Visibility.Collapsed;
            Pause_ImageButton.Visibility = Visibility.Collapsed;
            
        }

        // Achqan flim hojjitini qoyush
        private async void SetLocalMedia()
        {
            try
            {
                FileOpenPicker openPicker = new FileOpenPicker();
                openPicker.ViewMode = PickerViewMode.Thumbnail;
                openPicker.FileTypeFilter.Add(".wmv");
                openPicker.FileTypeFilter.Add(".mp4");
                openPicker.FileTypeFilter.Add(".aiv");
                openPicker.FileTypeFilter.Add(".mp3");
                StorageFile file = await openPicker.PickSingleFileAsync();
                var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
                VideoPlayer.SetSource(stream, file.ContentType);
                VideoPlayer.Play();
                BitmapImage bt = new BitmapImage();
                bt.UriSource = new Uri("ms-appx:///Images/error.png");
                DescriptionImage.Source = bt;
                Description.Text = "كومپىيوتېردىكى يەرلىك فىلىملەردىن قويۇلىۋاتىدۇ.";
                PlayView();
            }
            catch (Exception)
            { }
        }
        #endregion

    }
    public class ImageDescription
    {
        public string Title { get; set; }
        public string uri { get; set; } 
    }
}

 

38 - قۇردىن 58 - قۇرغىچە بولغان قىسمىنى ئۆزگەرتىش ئارقىلىق قويغۇچنى بىۋاستە مەلۇم فىلىم تور بېتىنىڭ مۇلازىمىتىرىدىكى فىلىملەرنى قويۇش ۋە ماس ئۇچۇرلىرىنى كۆرسىتىش، ئىنكاس يوللا قاتارلىق ئىقتىدارلىرىنى ئەمەلگە ئاشۇرغىلى بولىدۇ. ساندان مۇلازىمىتىگە ئۇلاش ئارقىلىق ئىنكاس يوللاش، يوللانغان ئىنكاسلارنى كۆرۈش ئىقتىدارلىرى سەپلىگىلى بولىدۇ. پاسون قىسمى XAML بىلەن ئورۇنلاشتۇرۇلغان (بۇ پەقەت مەشىق ئەسەر بولغاچقا UI لايىھەسىگە ئانچە كۈچەپ كەتمىدىم).

مەزكۇر ئەپنىڭ ئەسلى ھۆججەتلىرىنى بۇيەردىن چۈشۈرۈڭ:    چۈشۈرۈش ئادرىسى     ئېلىش نومۇرى: 5cek

ئىشلىتىش ئۇسسۇلى: ھۆججەتنى چۈشۈرۈپ، پىرېستىن يىشىپ، قىسقۇچ ئىچىدىكى Vedio Player ناملىق VS نىڭ بەلگىسى بار ھۆججەتنى VS بىلەن ئېچىپ، F5 نى بېسىپ ئىجرا قىلسىڭىزلا بولىدۇ.

[t]ئاخىرقى سۆز[/t]

ئۇيغۇرچە دېتاللاردا بەزى كونتىروللارنىڭ يۆنىلىشىنى ئوڭدىن - سولغا بەلگىلەش كېرەكمۇ ياكى سولدىن - ئوڭغىمۇ؟ مەسىلەن: قويغۇچنىڭ سىيرىلما تاياقچىسىنى ئادەتتە ھەممەيلەن سولدىن ئوڭغا يۆنىلىشتە ئىشلىتىپ كۆنۈپ قاپتۇق، ئەمما ئويلاپ باقسام ئوڭدىن سولغا بولسا ھەقىقىي توغرىدەك... شۇڭا مەزكۇر دېتالدا ھەممە كونتىرولنى ئوڭدىن - سولغا يۆنىلىش بويىچە ئىشلەتتىم. بۇ ھەقتە ئويلىغانلىرىڭلارنى ئوتتۇرىغا قويۇپ باقساڭلار!

كىيىنكى نەشرىدە كۆرۈنمە يۈزىنى سىپتىلاشتۇرغاندىن سىرت، سەزمە ئىكىرانلىق ئۈسكۈنىلەرگە تېخىمۇ ماسلاشتۇرىمەن، مەسىلەن: ئەپنى ئىكىراننىڭ بىر بۇلىڭىغا تارتىپ قويغاندىن كېيىن قۇرۇلمىسى ئاپتوماتىك تەڭشىلىش؛ سېستىما باشلاش كۆزنىكىدىكى(开始界面) ھەرىكەتچان تىزىملىك(动态磁贴) قىسمىدا يىڭىلانما ئۇچۇرلارنى كۆرستىش؛ تەڭشەك، تىزىملىتىش، كىرىش، پۈتۈن ئىكىران قاتارلىق بىر قىسىم تىزىملىك ۋە ئىقتىدار كونۇپكىلىرىنى قوشۇش قاتارلىقلارنى ئەمەلگە ئاشۇرىمەن. تورداشلار يەنە باشقا ئىجادىي تەكلىپ - پىكىر، تەنقىدلىرى بولسا ئايىماي تارتۇق ئەتكەي!

 

 

 

بۇلارنىمۇ ياقتۇرۇپ قالىسىز

ئۆز - ئۆزۈمنى ئىزدەش بوسۇغىسىدا...


ئۈنچىلەر (13)
نەقىللەر (0)
  1. بىركىم [ جۇغلانما: 17 نومۇر ] unknowunknow دىۋان 2014/05/09 21:27

    ئاۋال دىۋان :ئوماق:

  2. بىركىم [ جۇغلانما: 17 نومۇر ] unknowunknow گىلەم 2014/05/09 21:29

    مېنى بەك خىجىل قىلىپ قۇيىۋاتىسىز جۇمۇ . :ئوماق:
    بۇمۇ بولغىنى ، مانا مۇشۇنداق تىرىشچانلار بار ، دەپ سىزنى ئۈزۈمگە بەلگە جىسىم قىلىۋالدىم :ھا ھا:

  3. ئالتۇن بۇلاق [ جۇغلانما: 36 نومۇر ] unknowunknow كىگىز 2014/05/09 21:33

    ھەقىقەتەن ياخشى چىقىپتۇ، باھا يېزىڭ دىگەن يەرگە ما يازمىغا باھا يازىدىغان قىلىپ تەڭشەپ قويغان ئوخشايدۇ دەپ، شۇنداق جېق گەپ يازسام يوللانماپتۇ، ئادەمنى ئەخمەق قىلىپ.(سەت كۈلۈۋاتىمەن جۇمۇ)
    ھە راست، بۇلاقلاپ قويدۇم، ماۋۇ يەردىن چۈشۈرۈۋېلىڭلار. چۈشۈرۈش
    مەخپى نۇمۇرى:ttae

  4. abdullah83883 [ جۇغلانما: 1 نومۇر ] unknowunknow 4 -قەۋەت 2014/05/10 10:14

    ھەقىقەتەن ياخشى چىقىپتۇ :ئاماق:

  5. ھاجى [ جۇغلانما: 95 نومۇر ] unknowunknow 5 -قەۋەت 2014/05/11 11:06

    ئەسسالامۇ ئەلەيكۇم، ئاداش بۇنىڭدىكى كودلارنىڭ ھەممىنى قولدا يېزىپ چىقىدىغان گەپمۇ يا بەزىلىرى ئاپتۇماتىك ھاسىل بولامدۇ؟ java دا بەزىلىرى ئاپتۇماتىك ھاسىل بولىدىكەن، لېكىن سەل مۇرەككەپ، چۈشىنىكسىزراق ئىكەن. شۇڭا سوراپ باقتىم.

    • تەشنايى [ بىلوگ ھۆكۈمدارى ] unknowunknow @ ھاجى 2014/05/11 16:16

      ۋەئەلەيكۇم ئەسسالام! ئاساسلىق قۇرۇلمىسى ئاپتوماتىك شەكىللىنىدۇ، كونتىروللارغا بەلگىلەنگەن ئىش نامىنى باسقان ھامان مۇناسىپ #C ئىش قۇرۇلمىسى ھاسىل بولىدۇ، ئاندىن قالغان فونكىسىيەلەرنى شۇ يازىدىغان گەپ. ئەلۋەتتە VS نى سىلىمۇ ئىشلىتىپ باققان، باش ھەرىپنى بېسىپ بولغۇچە مۇناسىۋەتلىك مىقدارلار تەييار.

  6. سايىۋەن [ جۇغلانما: 6 نومۇر ] unknowunknow 6 -قەۋەت 2014/05/11 15:04

    ئالدى بىلەن ھۇزۇرلاندىم . ئاندىن شۇنداق قېيىشىپ كەتتىم ، پەقەت ئۈنۈمنى كۆرەلمىدىم . كىيىن بايقىسام ئىشلىتىۋاتقان سىستىمام ئۇبۇنتۇ ئىكەن . شۇنىڭ بىلەن نىمە بولسا بولسۇن دەپ قاچىلىسام بىر قېتىم ئىچىلىپلا كومپىيوتېرىم ئۆچۈپ قالدى. ئاندىن سېلىگە ئنكاس يازماقچى بۇلۇپ مەكتەپنىڭ كومپىيوتېر ئۆيىگە كىرىپ خاتىرە كومپىيوتېرىمنى چېتىپلا ئىزدەش رامكىسىدىن تەشنايى دەپ ئىزدىسەم بىرنەچچە ھۆججەت قىسقۇچى ئېچىلدى . قارىسام بىرىنچىسى سىلىكەنلا … ئاندىن بىرقۇر يازدىم ، ئىككى قۇريازدىم ،كەينىنى قانداق بولدى ئۇقالمىدىم ، نۇرغۇن يېزىلىپ كېتىپتۇ . ئەمدى مىنىڭ ھەم بۇنى كۆرگەنلەرنىڭ ۋاقتى ئىسراپ بولمىسۇن دەپ ،ئالدى كەينىگە ئىزاھات بەلگىسى يېزىپ قويدۇم .

    • تەشنايى [ بىلوگ ھۆكۈمدارى ] unknowunknow @ سايىۋەن 2014/05/11 16:13

      شۇنداق قىلىپ كومپىيوتېرنىڭ بۇزۇلىشىغا سەۋەبچى بولدۇمما؟ تولۇق چۈشەنمىدىم ماۋۇ گەپلەرنى ھوي، نېمىنى بىر قۇر ۋاي يەنە بىر قۇر يازغانسىلە؟ :ھا ھا: :ئىسىت:
      VS2013 كەسپىي نەشرى بولسىلا ئىجرا بولاتتى ئەسلى…

  • كۆچۈرۈلمە يوق

ئۈنچە قالدۇرۇش