一.项目介绍
1.本歌词播放器 支持在线查找歌词,自动下载歌词同步显示。
2.初次下载的歌词讲存储在手机独立存储空间。
二.引用代码
1.本项目中引用了部分网上的代码,在此表示感谢。如将其商业化,请联系截取代码原作者,本案例因为Windows Phone 7的编程特殊性,引用的代码进行了大量的修改,
以适应手机平台
2.引用代码出处
2.1歌词同步显示:
出自博客园-菩提树下的杨过-
注:这个例子来自(在blueidea上又名“寂寞火山”)翻译的“Animation in ActionScript3.0”一书
2.2HTML解析(Windows Phone 7本身不支持GB2312)
2.3C#歌词在线下载
版权声明:以上出处因为转载过多,真实性不可考,要抓请抓原作者。嘿嘿
二.搭建运行框架
1.因为我们调用的歌曲文件为手机媒体库中的歌曲库,并且要实现播放功能,因此需在silverlight架构中加入XNA框架。
View Code
2.播放器播放SongCollection歌曲集合。按顺序播放 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls; using Microsoft.Xna.Framework.Media; using System.Windows.Threading; using Microsoft.Xna.Framework; using System.IO.IsolatedStorage; using System.Text.RegularExpressions; using System.Diagnostics; using System.Windows.Media.Imaging; using System.Windows.Resources; // 构造函数 public MainPage() { InitializeComponent(); //模拟XNA架构 DispatcherTimer dt = new DispatcherTimer(); dt.Interval = TimeSpan.FromMilliseconds(33); dt.Tick += delegate { try { FrameworkDispatcher.Update(); } catch { } }; dt.Start(); }
View Code
SongCollection songs; // 构造函数 public MainPage() { InitializeComponent(); //模拟XNA架构 DispatcherTimer dt = new DispatcherTimer(); dt.Interval = TimeSpan.FromMilliseconds(33); dt.Tick += delegate { try { FrameworkDispatcher.Update(); } catch { } }; dt.Start(); } //媒体库 MediaLibrary libary = new MediaLibrary(); private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) { //如果歌曲库不为空 if (libary.Songs != null) { get(); } } void get() { //装载歌曲集合 songs = libary.Songs; //根据艺术家分组排序给LISTBOX var music = from s in songs group s by s.Artist into newmusic select new Group(newmusic.Key.ToString(),newmusic); //绑定数据 SongList.ItemsSource = music; }