shitou's blog 

  • Home
  • About
  • Feed
  • 十人族
  • MIX BOY
  • 塌客

Category "iPhone"

17
Mar

MIX BOY开发文档

http://www.ccok.me/photo/image/31/medium/icon.pngMIX BOY的开发文档
关于MIX BOY的介绍在, 摸我

MIX BOY开发文档

为了省事下面的MIX BOY就简称MB
因为iPod Touch和iPhone功能基本类似,这里就只用Touch代替
没有说明的话提到的Safari都是iPod Touch/iPhone上的Safari


开始

在 开发iPhone/iPodTouch版本的MB之前其实很早就做出了PC上的版本,用你的PC浏览器就可看到了(m.ccok.me),PC版的功能比 较简单,因为当时自己是为了兴趣做出来玩的,后来买了 Touch, 觉得在用Touch听歌时只能通过自己电脑同步音乐或者是安装一些app(现在的听歌app大都是国外的)来收听,这样比较麻烦,你想像在PC上一样访问 一些自己常去的音乐网站随意听点歌,在Touch上就不方便了。

在技术上, Safari本身就不支持传统的embed标签播放音乐,剩下的就只有Flash播放器了,然而Touch上的Safari把Flash的功能也阉割了, 这样就挡掉大部分的音乐网站了,你可以说你通过别的手段让Touch的Safari支持Flash播放,但这毕竟是非标准的手段,如果这样开发出来的话你 就得要求你的网站用户都得Hack这个手法了,这样你就挡掉了很多访问你网站的用户。因此就得寻找其他的解决办法了。

现在开发Touch版的MB遇到的问题就是:

1.音乐从什么地方来
2.怎样在Touch的Safari上播放音乐
3.用户界面以及具体技术的实现



问题的解决
1.因为之前PC版MB已经解决了这个问题,就不多考虑了。音乐的来源是yahoo的mp3搜索,就是抓取yahoo的搜索结果,过滤出结果中的音乐地址,然后再呈现给用户。


2.关于音乐在Touch的Safari中播放,PC版的MB是用的Flash播放音乐的,现在就是怎样在Touch的Safari上播放了,一次我偶然(我火 星了吗)发现如果你直接打开一个以mp3结尾的URL地址时,Safari会自动用你Touch里的QuickTime播放这个音乐,这样也就可以理解为 什么YouTube可以在Touch上播放了,也就是只要是一个以媒体格式结束的URL地址,Touch都会自动用QuickTime打开播放的,当然前 提是QuickTime支持这种媒体格式。所以现在问题就解决了,所要做的只是抓取yahoo mp3搜索结果的音乐地址,然后直接把地址作为超链接让用户去点就可以了。
但事情往往没想的那么简单,在做的过程中,你若直接把一个音乐地址给用户去点,Safari就会:

  1.要 么在当前窗口打开QuickTime播放音乐,当音乐播放完毕,会回到刚才你浏览的网页页面,但它会重新刷新的,因为MB采用了AJAX技术,就是异步传 输数据的模式,简单说就是不用等待页面刷新,数据动态载入页面的意思,所以重新刷新页面就会导致用户之前的所有操作丢失,就好像你刚来到MB一样,当然这 个这个问题是可以用过技术解决的,但是“重新刷新”页面的这个动作你是无法阻止Safari去执行的,这样给用户的体验就非常不好。
  2.要么重新打开一个窗口(地址标签中加了target=”_blank”属性),这样的体验就不用说有多糟了,你看到的就是,Safari先把你当前浏览的窗口变小,然后重新打开一个窗口启动QuickTime,这个过程是蛮漂亮的,但给用户的体验还是太繁琐了。
因此问题现在就又有了。

后来终于想到的解决办法就是:使用隐藏iframe。在首页中嵌入一个隐藏的iframe标签,既宽高都是0,当用户点击音乐的链接时把这个音乐的地址赋给iframe的src地址,这样就解决上面的问题了,让Safari在隐藏的iframe中加载音乐,然后再启动QuickTime的窗口,这也就是用户应该看到的,这样就和YouTube在Touch中的体验一样了。当然现在还是有一个小问题的,就是当那个音乐地址无效产生报错的页面的话,报错页面就会显示在iframe中了,此时你把iframe的宽高设置为0或者把iframe放在一个display:none的div中时也是没用的,不过这样不怎么影响用户的体验,因为报错是在页面最下面的,一般人看不到。

3.剩下的就是用什么技术去实现了,因为是在移动平台上的开发,所以页面不能太臃肿和复杂,加快用户的访问速度是很重要的,这里用的就是AJAX了,感兴趣的同 学可以去google下。而且根据Touch上Safari的特点可以做出类似于本地app体验的WEB应用程序,当然MB这里没有刻意去模仿本地app 的用户体验方式,更贴近于传统的WEB应用。



解决了上面几个问题,剩下就是怎样去实现了,因为是WEB平台,实现的技术有太多 种,PHP,.NET, JSP, Python, Ruby on Rails随你, MB用的是Ruby on Rails技术,这也保证了MB的开发速度,除去之前搜索部分的功能已经开发了出来,剩下的工作总共用了不到15个小时完成的,中间加上一顿午饭和晚 饭:)

好了,自我感觉介绍的差不多了,最起码把MB开发的核心框架都说了,至于具体再具体的技术操作,有兴趣的同学可以M我。

 

Tags: mixboy

2009-03-17 16:39:01, 900 reviews, comment

send to mailbox

Your email:

Related Posts

MIX BOY--自己写的音乐搜索程序

MIX BOY,第一个iPhone上的网站出炉啦!

MIX BOY在Apple Web App列表中已经排在第一了:)

MIX BOY播放列表功能

TOP

Tags

json Impactjs Canvas fun gen_server superfly PS3 Webgame HTML5 jquery SSH tenerer MooseFS gearman-ruby Gearman MongoDB MochiChat TCP U-ka saegusa IN db command Mai Kuraki Norah Jones log iPhoneException ACG Mac Safari objective-c CouchDB LVS AJAX debian 推荐 AMQP google mail bug gettext Erlang 北京 iptables 架构 tips mysql backup function 我看 postfix 监控 SEO cache Etag memcache thread 进程 线程 无锡 yield file column mixboy xml rss gems ruby shitou shell lighttpd 安全 csrf 公司 nginx linux 模块 apache webserver 朋友 大学 生活 尼古拉斯凯奇 movie 文件同步 笑笑 歌词 auto complete plugin rails music ubuntu blog

Category

  • HTML5[3]
  • iPhone[17]
  • Erlang[11]
  • google[13]
  • 生活[45]
  • 音乐[13]
  • 电影[11]
  • linux[29]
  • web server[6]
  • mail server[3]
  • cluster[1]
  • system manage[9]
  • ruby[20]
  • ruby on rails[28]
  • 开源[4]

Episode

  • MongoDB
  • MochiChat
  • iPhoneException
  • shell
  • thread
  • memcache


Popular Posts

  • 准备开始学习Erlang了(恶狼, 二郎..)
  • Ruby遍历MemCached的key
  • 服务器监控小脚本
  • MySQL Innodb备份
  • [转载]5个有用的ruby gems

Recommended Posts

  • Tri-survive - HTML5 Game
  • Cut the rope - HTML5版
  • json_formatter
  • 在gen_server中spawn新的进程
  • Superfly - Wildflowers
  • 继续凸墙 for Mac OS
  • MongoDB Beijing 2011
  • MongoDB删除map_reduce生成的tmp collection
  • Mai Kuraki - Future Kiss
  • Erlang OOP
  • 用SSH tunnel凸墙
  • Google的语法高亮工具包
  • 大量数据的批量操作
  • 再次被和谐-_-
  • 十人族: 上线了

Friends' blogs

  • levy
  • sphance
  • andreas
  • yangkunlun
  • {:dev=>:wxianfeng}
  • bheye
  • joeydarko

Login

   注册

留言 查看留言

留言

   取消

留言 查看留言


Statistics

  • 访问次数: 317297
  • 今天访问: 105
  • 日志: 213
  • 评论: 4967
  • 音乐: 9
  • 用户: 1766


少年,不点下广告吗!

 

all by shitou

blog comments powered by Disqus

close