Share Your Music

Share Your Music,是我最近做的一个音乐应用,在了解了一些Web Audio API的知识之后,显示闲的蛋疼的做了一个这个。就手痒的做了一个Web的音乐播放和分享应用。大概是这个样子。

这次的应用专门适应于PC端,固定宽度1000px,绝对布局。是不是很low。。。

虽然这次前端来说没用库,CSS除了引用了淘宝的Reset.css之外没有用css框架,但也是参考了众多博客,使用了许多开源项目。一一列举如下:

  • 阿里的iconfont,下载字体文件的时候里里面有玉伯维护的reset css,我就直接用了。
  • 设计图,来自网上的一张图,链接找不到了。。找到后一定加上。
  • getID3,一个解析媒体文件的php库,很强大。

下面是参考文章和博客:

在此一一感谢。

当然坑又是踩了不少。简单说一下:

  • input和span在一起的时候,设置line-height之后,两人不在一条水平线上,给每个加上个 vertical-align: middle;就行了
  • 最开始的时候,没有想做后端,直接简简单的前端做了就完事了。第一种想法是使用dataurl来标识音乐,可是火狐不支持。使用web audio api的decodeAudioData倒是可以,但是就不能方便的使用audio元素控制音乐了。最后还是上传吧,这样从单一的音乐播放变成了音乐分享。后端还需要继续完善。
  • 使用xhr2的时候,xhr.responseType需要在xhr.open之后,否则会报错,也是在firefox下的问题。
  • chrome下,一个audio不支持多个source,所以个人觉得稳妥的做法是全部置为null重新new一个。我自己整了一个音乐的库。visual-audio.js

想起问题再补充,代码在github上,Share Your Music

新博客地址:http://zjzhome.sinaapp.com/#/blog/article/share-your-music

时间: 2024-10-09 22:52:54

Share Your Music的相关文章

Web Share API的解释(译)

原文地址:https://github.com/WICG/web-share/blob/master/docs/explainer.md  Web Share是一个提议阶段的Web API,用于将网站的数据(文本.URL或图片等)分享到任意的目标应用,比如系统服务.本地APP或其它网站.开发者可以创建一个通用的分享按钮,当用户点击时就可以触发一次系统分享的会话. Web Share所属的投石机项目(Ballista project)是Chromium的子项目,该项目致力于打通网站与网站.网站与本

Can you share some Scala List class examples?

Scala List FAQ: Can you share some Scala List class examples? The Scala List class may be the most commonly used data structure in Scala applications. Therefore, it's very helpful to know how create lists, merge lists, select items from lists, operat

Share data between VSTO and Excel DNA App domains

Is there a way to share data between a VSTO add in and an Excel DNA add in? Or can the Excel DNA add in be loaded into the VSTO's app domain? The Excel-DNA add-in will always be in a separate AppDomain. You might try to pass an object via the AddIn's

尝试在virtualbox fedora21 下安装additions和mount share folder

安装这个additions的过程,基本上可以参照 http://gamblisfx.com/how-to-install-virtualbox-guest-additions-on-fedora-21/ 拷贝一份过来就是, 1. 先更新内核 yum update kernel* 2. 重启 reboot 3. 安装kernel headers等 这一步很关键,因为之前好几次都是在这里失败了.没有看到这篇文章之前,估计是少了dkms(虽然我其实没有搞懂这个是什么),但是它works. yum in

Android Studio Share Project On Github

在Android Studio上将项目导入Github上: 1. 创建一个Project,点击VCS -> Enable Version Control Integration... 2.选择Git,点击OK 3. VCS -> Import into Version Control -> Share Project on Github 4. 在弹出的对话框里登录GitHub账号密码 5.登录成功后,弹出对话框,可以对即将导入到Github的项目进行描述 6.确认后,Add Files

retrying with upper case share name mount error 6 = No such device or address

今天想把windows下的资料共享给Linux系统用,日了,安装了samba之后,老是提示如图 气的牙疼,后来把用户名和密码加上之后就OK了. retrying with upper case share name mount error 6 = No such device or address,布布扣,bubuko.com

Oracle Share Pool内部管理机制

SHARE POOL利用堆(HEAP)的内存管理方式管理,在物理上由多个内存区(EXTENT)组成,内存区又由多个不同大小的CHUNK组成.而CHUNK又有可重用和空闲之分,并且它们分别有LRU LIST.FREE LIST.RESERVED LIST串联起来. 堆管理 Shared Pool是利用堆内存管理方式管理的(KGH:Kernel Generic Heap).从Oracle 9i开始,可以有多个最高级堆(TOP-LEVLE HEAP),最高级堆可以分成多个副堆,副堆下面还拥有子堆.堆和

Share Point 创建 TimerJob

public class SyncMetadataJob:SPJobDefinition { private const string JobName = @"Metadata Sync Job"; private int counter = 0; public SyncMetadataJob() : base() { } public SyncMetadataJob(string jobName, SPService service) : base(jobName, service,

openstack安装配置—— file share node 配置

实际生产中,很多时候需要数据源的共享来实现多节点的实时数据保持一致,openstack官方提供了manila服务模块实现了云盘共享,manila服务也是需要manila服务端和存储节点共同组成的,本实验中为了节约虚机节点,就把manila服务端安装在了controller节点上,manila数据存储节点和cinder存储节点合并使用一个虚机节点,各自使用了一块独立硬盘. manila服务端配置 准备数据库 [[email protected] ~]# mysql Welcome to the M

他山之石,calling by share——python中既不是传址也不是传值

事情是这样的,Python里是传址还是传值令人疑惑,限于本人没有C基础,所以对大家的各类水平层次不一的解答难以确信. 第一个阶段: 在读<python基础教程第二版>的时候感到疑惑,然后群友解答(略敷衍),接着就是知乎上提问(感谢大家的热心回答,但我很晚才收到推送) 虽然是某天早晨睡不着,翻看公众号的时候看见一篇<不要再问 "Python 函数中,参数是传值,还是传引用?" 这种没有意义的问题了>的文章,初步释疑惑(但后来我觉得他的说法虽然形象,但是不准确) 第