Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1071588
  • 博文数量: 403
  • 博客积分: 10272
  • 博客等级: 上将
  • 技术积分: 4407
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:22
文章分类

全部博文(403)

文章存档

2012年(403)

分类: 嵌入式

2012-03-18 17:34:09

一.项目介绍

1.本歌词播放器 支持在线查找歌词,自动下载歌词同步显示。

2.初次下载的歌词讲存储在手机独立存储空间。

二.引用代码

1.本项目中引用了部分网上的代码,在此表示感谢。如将其商业化,请联系截取代码原作者,本案例因为Windows Phone 7的编程特殊性,引用的代码进行了大量的修改,

以适应手机平台

2.引用代码出处

2.1歌词同步显示:

出自博客园-菩提树下的杨过-

注:这个例子来自[FL车在臣](在blueidea上又名“寂寞火山”)翻译的“Animation in ActionScript3.0”一书

http://www.cnblogs.com/yjmyzz/archive/2010/04/14/1711725.html

2.2HTML解析(Windows Phone 7本身不支持GB2312)

http://www.cnblogs.com/qingci/archive/2011/11/25/2263124.html

2.3C#歌词在线下载

http://hi.baidu.com/yyq745201/blog/item/bd7dffdf272bef52cdbf1a4d.html

版权声明:以上出处因为转载过多,真实性不可考,要抓请抓原作者。嘿嘿

二.搭建运行框架

1.因为我们调用的歌曲文件为手机媒体库中的歌曲库,并且要实现播放功能,因此需在silverlight架构中加入XNA框架。

View Code
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();
}


2.播放器播放SongCollection歌曲集合。按顺序播放

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;



}



阅读(360) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~