viết 1 ứng dụng xem phim trực tuyến với Wp8


Từ: 10:32 14/06/2012
Bài: 112
Cảm ơn: 124
Thích: 18

 

 

Trước hết cần tạo 1 abtract class để sau này sẽ không pải viết lại nhiều lần 

Abtract này chứa một method có tác dụng cập nhật lại giao diện ứng dụng ngay sau khi dữ liệu thay đổi

 

abtract PropertyChangedBase

using System;

using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
 
namespace Streaming.Interfaces
{
    public abstract class PropertyChangedBase : INotifyPropertyChanged
    {
        protected void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (null != handler)
            {
                handler(this, new PropertyChangedEventArgs(propertyName));
            }
        }
        public event PropertyChangedEventHandler PropertyChanged;
    }
}
 
Tiếp theo xây dựng 1 đối tượng gồm tiêu đề , link và ảnh
 
MusicObject
 
using Streaming.Interfaces;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media.Imaging;
 
namespace Streaming.Modules.ListMusic
{
    public class MusicObject : PropertyChangedBase
    {
        private BitmapImage _imageBitmap;
        public BitmapImage ImageBitmap
        {
            get
            {
                return _imageBitmap;
            }
            set
            {
                _imageBitmap = value;
                NotifyPropertyChanged("ImageBitmap");
            }
        }
        private string _title;
        public string Title
        {
            get
            {
                return _title;
            }
            set
            {
                _title = value;
                NotifyPropertyChanged("Title");
            }
        }
 
        private string _linkVideo;
        public string LinkVideo
        {
            get
            {
                return _linkVideo;
            }
            set
            {
                _linkVideo = value;
                NotifyPropertyChanged("LinkVideo");
            }
        }
        public MusicObject() { }
 
        public MusicObject(String imageUrl, String title,String linkVideo)
        {
            Uri uri = new Uri(imageUrl);
            ImageBitmap = new BitmapImage(uri); Title = title;
            LinkVideo = linkVideo;
        }
    }
}
 
Load dữ liệu ở đây
 
MusicModel
 
using Streaming.Interfaces;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
 
namespace Streaming.Modules.ListMusic
{
    public class MusicModel : PropertyChangedBase
    {
        private List<MusicObject> _musics;
        public List<MusicObject> Musics
        {
            get
            {
                return _musics;
            }
            set
            {
                _musics = value;
                NotifyPropertyChanged();
            }
        }
        public MusicModel()
        {
            Musics = new List<MusicObject>();
        }
 
        public List<MusicObject> LoadData(List<MusicObject> musics)
        {
            Musics = musics;
            return Musics;
        }
    }
}
 
Modules ucListMusic : nhiệm vụ như ModelView
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using System.Windows.Media;
using Microsoft.Phone.Tasks;
 
namespace Streaming.Modules.ListMusic
{
    public partial class ucListMusic : UserControl
    {
        private List<MusicObject> _musics;
        public List<MusicObject> Musics
        {
            get
            {
                return _musics;
            }
            set
            {
                _musics = value;
                MusicModel modelMusic = new MusicModel();
                lstMusic.ItemsSource = modelMusic.LoadData(Musics);
 
            }
        }
 
        public ucListMusic()
        {
            InitializeComponent();
        }
 
 
        private void lstMusic_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            MediaPlayerLauncher mediaPlayerLauncher = new MediaPlayerLauncher();
            mediaPlayerLauncher.Media = new Uri((lstMusic.SelectedItem as MusicObject).LinkVideo, UriKind.Absolute);
            mediaPlayerLauncher.Controls = MediaPlaybackControls.All;
            mediaPlayerLauncher.Location = MediaLocationType.None;
            mediaPlayerLauncher.Show(); 
        }
 
    }
}
 
File giao diện chính
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using Streaming.Modules.ListMusic;
 
namespace Streaming
{
    public partial class MainPage : PhoneApplicationPage
    {
        public MainPage()
        {
            InitializeComponent();
            List<MusicObject> Musics = new List<MusicObject>();
            string link = @"http://r8---sn-42u-i5od.c.youtube.com/videoplayback?upn=0rTRRBxiJwg&sparams=cp%2Cgcr%2Cid%2Cip%2Cipbits%2Citag%2Cratebypass%2Csource%2Cupn%2Cexpire&fexp=923113%2C916625%2C902542%2C922401%2C920704%2C912806%2C925703%2C928001%2C922403%2C922405%2C929901%2C913605%2C929104%2C913546%2C913556%2C920201%2C913302%2C919009%2C914903%2C911116%2C910221%2C901451%2C902556&ms=au&expire=1355780230&itag=18&ipbits=8&gcr=vn&sver=3&ratebypass=yes&mt=1355758633&ip=118.71.126.204&mv=m&source=youtube&key=yt1&cp=U0hUSldTTl9ISkNONF9PTVJDOmh3aU1iM0N4ZHk2&id=a8a15e105974f937&newshard=yes&signature=342AA036C32734BE88712CE73E63DE04E0745D52.9611F433BA65057CC881D05E85F8AAD60A43BB38";
            Musics.Add(new MusicObject(@"http://i1.ytimg.com/vi/XMekcu9THMg/mqdefault.jpg", "Nobita và thế giới \n phép thuật", link));
            Musics.Add(new MusicObject(@"http://i2.ytimg.com/vi/udZxz9LxsWE/mqdefault.jpg", "Thành phố thú nhồi bông", link));
            Musics.Add(new MusicObject(@"http://i2.ytimg.com/vi/UMDfGlff8co/mqdefault.jpg", "Chú khủng long lạc loài", link));
            Musics.Add(new MusicObject(@"http://i2.ytimg.com/vi/AJy5gx-7AjA/mqdefault.jpg", "Miếng Dán Tùy Tâm Trạng \nCuộc chiến của các bà mẹ", link));
            Musics.Add(new MusicObject(@"http://i3.ytimg.com/vi/jaFyJpuXYUM/mqdefault.jpg", "Chaien Làm Quản lý \nGương Nói Dối", link));
            Musics.Add(new MusicObject(@"http://i4.ytimg.com/vi/3R_odqL5BnI/mqdefault.jpg", "Kéo cắt bóng", link));
            Musics.Add(new MusicObject(@"http://i4.ytimg.com/vi/O-n-7vLL7x4/mqdefault.jpg", "Trò chơi có thưởng \nCon đường hạnh phúc", link));
            Musics.Add(new MusicObject(@"http://i3.ytimg.com/vi/NMHYizDQXvg/mqdefault.jpg", "Suneo Khổng Lồ \nThế giới ngủ", link));
            musicControl.Musics = Musics;
        }
    }
}
 
 
Vì link Youtube cập nhật lại liên tục nên fim có thể bị chết , bạn cần cập nhật link khác (.Mp4 nhé )
 

 

Label
Từ: 12:10 27/09/2012
Bài: 155
Cảm ơn: 178
Thích: 28

Cái Window Phone 8 SDK nặng quá anh ơi, vừa cài VS Ultimate mất 6GB rồi, giờ cái SDK hình như cũng 6GB nữa, chết mất.

Label
Từ: 10:32 14/06/2012
Bài: 112
Cảm ơn: 124
Thích: 18

um . hic . minh cung vua go~ no ra khoi may . ngon het ca ram

nhung ma xay dung ui cua thang nay nhu ios . cong nhan la suong

ko nhu thang android . tool drag&drop co cung nhu ko

sr vi k viet dc tieng viet

Label
Từ: 21:54 09/09/2012
Bài: 4
Cảm ơn: 6
Thích: 2

Kéo thả cũng tiện thật đấy. Nhưung khi muốn làm những cái phức tạp thì lại không linh hoạt. Bên ios cũng thế thôi. Khi làm mấy cái khó khó thì lại phải code  tay như j2me.

Label
Từ: 10:56 16/09/2013
Bài: 1
Cảm ơn: 1
Thích: 0

Bạn ơi, chương trình nó báo lỗi không chạy được bạn ạ!

Label
Từ: 16:55 21/10/2013
Bài: 1
Cảm ơn: 0
Thích: 0
MusicObject(@"http://i3.ytimg.com/vi/NMHYizDQXvg/mqdefault.jpg", "Suneo Khổng Lồ \nThế giới ngủ", link));
            musicControl.Musics = Musics;ị
Bi Lỗi ở đây

-----------
Cảnh cáo tác giả còn spam link SEO trong bài reply sẽ bị ban nick nhé
Label
Từ: 15:21 23/10/2013
Bài: 2
Cảm ơn: 0
Thích: 0
MusicObject(@"http://i3.ytimg.com/vi/NMHYizDQXvg/mqdefault.jpg", "Suneo Khổng Lồ \nThế giới ngủ", link));
            musicControl.Musics = Musics;ị






Công nghệ hiện đại với Giá toyota vios 2013