zoukankan      html  css  js  c++  java
  • [Windows Phone 7璀璨]北漂1.0在线歌词播放器一.项目搭建及版权声明

    一.项目介绍

    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<Song>(newmusic.Key.ToString(),newmusic);
    //绑定数据
    SongList.ItemsSource = music;



    }



  • 相关阅读:
    golang语言特性
    Mysql学习之order by的工作原理
    Mysql聚合函数count(*) 的性能分析
    Mysql的刷脏页问题
    普通索引与唯一索引的选择问题
    Mysql锁的类型与简析
    深入浅出Mysql索引
    Mysql修改语句的运行流程
    Mysql查询语句的运行流程
    Go语言入门之切片的概念
  • 原文地址:https://www.cnblogs.com/tubufeng/p/2404743.html
Copyright © 2011-2022 走看看