• [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;



    }



  • 相关阅读:
    padding magin 盒子模型
    background元素背景--font字体
    border 边框
    浅析mvvm模式和mvc模式的区别和联系
    Win10下小米路由器4A百兆版刷Openwrt固件【图片详细版】
    Vue源码-手写mustache源码
    微信小程序支付实现流程
    Fiddler对安卓模拟器中的app抓包
    Niginx中Vue Router 历史(history)模式的配置
    ES6中Promise方法详解
  • 原文地址:https://www.cnblogs.com/tubufeng/p/2404743.html
Copyright © 2020-2023  润新知