轩枫阁

首页 / 搜索标签: HTML5

piano-play 基于html5的钢琴导航弹奏游戏

piano

前言

相信很多人对轩枫阁的导航交互会印象深刻,可以通过键盘,自定义节奏,弹奏出动听的曲子,是一种指尖上的艺术。

目前已经将主要代码抽出成组件,可以自定义开发。

体验

piano-play
piano-2

功能

  • 看谱弹琴
  • 录制曲子
  • 分享曲子
  • 弹奏试听

弹奏方式

  • 鼠标放置导航
  • 键盘A,S, D, F, G, H, J, K, L、数字键1-9分别代表着不同的音

实现方式

源码

https://github.com/xuanfeng/piano-play

开发方案

音频文件: 分别有do、re、mi、fa、so、la、si、高音do,高音re

音频格式:mp3、ogg两种格式的文件就可以基本兼容大部分浏览器

音频播放:通过事件监听,并触发对应音频的播放

曲子录制:开启录制,计时,根据键盘及时间间隔记录下曲子的信息串

曲子试听:将曲子信息串转换成json,定时器延时播放节奏音

曲谱列表:曲谱由网友创作,包含9个音,使用数字0分隔句子

导航动画:设置播放音频回调,结合CSS3做导航动画即可

piano-play.js

引用

可直接被引用或者AMD、CMD方式加载

options

方法

  • getAudioFormat:检测支持audio的格式,mp3或者ogg
  • checkReady:检测是否全部音频加载完成
  • autoPlay:打开页面时自动播放,可以在url中传递参数#music=xxx或者页面打开时随机播放
  • playKey:根据key播放按键声音,0-9,0为空格
  • startRecord:开始录制
  • finishRecord:完成录制
  • cancelRecord:取消录制
  • getStatus:获取当前是否正在弹奏
  • previewSong:试听数据触发音乐,传入json数据
  • playOver:结束自动弹奏
  • analysis:分析链接,返回json
  • parseData:数组转成json数据
  • getAlbumList:获取曲谱列表,用于渲染
  • getKeyboard:获取曲谱-键盘定义

曲谱格式

自动播放URL格式

#music=1:0-2:3-3:2-4:2-5:2-6:2-7:2-8:2-9:2

  • : 冒号前表示key
  • : 冒号后表示时间
  • 每个节奏使用-中划线分隔

曲谱json数据

小星星: 11556650443322105544332055443320115566504433221

  • 0:间隔符
  • 8、9:高音节拍,其余为低音节拍

授权

源码未经允许勿使用于其他网站!

2016/12 11  周日

玩转HTML5移动页面

xchbgngh

前言

作为一名前端,在拿到设计稿时你有两种选择:

  1. 快速输出静态页面
  2. 加上高级大气上档次狂拽炫酷屌炸天的动画让页面动起来

作为一个有志向的前端,当然是选2啦!可是需求时间又很短很短,怎么办呢?

这次就来谈谈一些动画设计的小技巧,能在你时间不多又没有动画想法的时候瞬间让页面增色不少。
同时也会谈及移动端H5页面的优化细节与关键点,因此本文章将分为动效篇和优化篇。

动效篇

20150427180532134

(1) CSS3时序错开渐显动画

这是一种比较常用的动画,它的优点是节奏感强,做法就是先让每个元素隐藏,然后当页面呈现后每个元素错开时间出现。

例子(忽略兼容前缀和无关属性): 查看全文

2016/02 20  周六

H5离线存储三——实时程序加载进度

dfghgfjfgh

前言

本文介绍H5离线存储的应用点——利用应用程序存储实现进度加载提示。

Stackedit

上文中提到stackedit这个编辑器也运用了离线存储,以下是程序所需要加载的文件。

Chrome插件安装:https://chrome.google.com/webstore/detail/stackedit/iiooodelglhkcpgbajoejffhijaclcdg

直接访问:https://stackedit.io/editor 查看全文

2015/06 27  周六

移动前端HTML5性能优化指南

01qwer1

概述

  1. PC优化手段在Mobile侧同样适用
  2. 在Mobile侧我们提出三秒种渲染完成首屏指标
  3. 基于第二点,首屏加载3秒完成或使用Loading
  4. 基于联通3G网络平均338KB/s(2.71Mb/s),所以首屏资源不应超过1014KB
  5. Mobile侧因手机配置原因,除加载外渲染速度也是优化重点
  6. 基于第五点,要合理处理代码减少渲染损耗
  7. 基于第二、第五点,所有影响首屏加载和渲染的代码应在处理逻辑中后置
  8. 加载完成后用户交互使用时也需注意性能

查看全文

2015/03 07  周六

纸飞机许愿

x

钢琴节奏

请选择弹奏的曲谱

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 1
    • 2

    [返回曲谱列表]