留学之家留学DIY社区

首页 » 休闲频道 » 电脑网络 » 系统网络 » 不在是想象:教你搭建个人音乐播放网站
xy8888 - 2008-4-13 5:52:00
现在听歌的流行方式是网上下载而不是去音像店寻找。歌迷们采用的的方法一般是登陆提供MP音乐下载的站点,或使用搜索引擎进行搜索,然后再使用下载工具下载。但我们能否不下载,直接在网上收听呢?答案是当然可以。网上已经有这样的网站了,如:教育网中的:music.ustc.edu.cn和music.trueice.net这两个站点,当点击选中的歌曲时,他就调用客户端的音乐播放软件进行播放;这太棒了,我们可以为我的偶像搭建一个这样的网站,但我不会编程,这能行吗?回答是完全没有问题,目前网上有很多开放源代码的音乐播放网站程序,我们可以利用这些程序,不需要写一句代码,只要稍微修改一下配置就可以了。当然您必须拥有个人独立主机和域名。下面,笔者将给大家介绍一个基于Python语言的开放源代码的音乐播放网站程序——edna。 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
Python语言简介 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  989年圣诞节期间,Python的创始人Guido van Ro um为了解决其早期设计的用于教学的ABC程序语言中的一些问题,开发了一个全新的脚本解释语言,这种语言吸收了ABC语言的优点,并且结合了Unix Shell和C的习惯。由于他是一个Monty Python的飞行马戏团的爱好者,因此他选中了Python(大蟒蛇)给这种语言命名。Python最初是在MAC机上被编译成功的,但现在它已经可以运行于世界上各种主流的操作平台之上了。 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  虽然 Python 被称作是"脚本语言(scripting language)", 实际上一些大规模软件开发计划例如 Zope,BitTorrent和Google也广泛地使用它。 Python的爱好者一般称它为一种高阶动态编程语言 , 原因是"脚本语言" 泛指用作简单编程任务如 shell scripts ,而Python不能与JavaScript等只能处理简单任务的编程语言相提并论。它是一种真正的面向对象的程序语言,相对于C 等语言来说,它的优势在于快速开发和代码开放,并且支持网络开发和大规模数据库开发。它可以被用在很多场合,如高效的文字处理,将不同的编程环境和软件功能进行整合,以及进行图形界面编程等等,现在还有很多使用Python制作的游戏。目前两个比较著名的基于Python的应用就是Zope和Plone,前者是一个开放源代码的Web应用服务器,使用其可以方便的构建内容管理、内部网、门户网站、和其他的定制应用,而后者是构建于前者上的一个用户友好、功能强大的开放源代码内容管理系统,适用于内部网/外部网的服务器、文档发布系统、门户服务器和异地协同群件工具。 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  中文维基百科(http://zh.wikipedia.org)是这样介绍Python的:Python,是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  Python的开发环境: #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·BlackAdder: http://www.thekompany.com/products/blackadder #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·Wing IDE: http://wingware.com/ #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·Boa Co tructor: http://boa-co tructor.sourceforge.net/ #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·IDLE: http://www.python.org/idle/ #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  Python的一些资源站点: #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·Python的老家: http://www.python.org #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·中国Python用户群: http://python.cn/ #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·Python世界: http://dohao.org/python #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·Python游戏开发站点: http://pygame.org/ #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·Python科学库: http://scipy.org/ #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·Python企业级应用开发包:http://peak.telecommunity.com/ #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
Python环境安装 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  Windows用户可以访问http://www.python.org/download/ 获取最新的Python安装包,当前最新版本为..,一般选择Windows binary不包含源文件的安装版本即可。下载到本地之后,直接双击程序进行安装,出现图所示对话框,选择I tall for all users,点击Next。 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  图显示选择Python环境的安装目录,一般默认即可,也可以选择自定义的安装路径。点击Next进入下一步。 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  图中显示选择安装哪些Python的组件,保持默认设置,点击Next。 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  点击Next之后,程序开始正式安装,如图所示。 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  图5显示了安装完成的对话框,至此,本机上即安装上了Python语言的解析器及相关组件,已经可以进行Python语言的编程和解析运行了。 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
图5 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
[page] edna程序简介 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  edna是一个基于Python语言的开放源代码的音乐播放网站程序,它支持通过网络访问远程服务器上的音乐资源,当然要听美妙的歌曲还需要您的客户端的音乐播放器能够支持网络播放,不过这个问题不大,目前流行的音乐播放器基本都具有此功能,如Winamp, FreeAmp,Sonique, XMMS, Windows Media Player等等。 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  edna支持的特点有: #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·支持Unix机器的精灵(Deamon)设置和Windows的服务启动 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·完美中文支持 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·根据音乐文件目录结构设置网站的分层结构 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·多种网页点歌方式:专辑点歌(顺序或随机),单首播放 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·显示服务端歌曲的上传时间显示 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·支持专辑图片的显示 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·统计服务流量和相关访问信息 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  ·服务端的自定义配置 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  edna的配置和运行 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  edna可以从http://edna.sourceforge.net/ 上进行下载,最新版本为0.5。edna的安装很简单,下载后使用winrar或winzip等工具进行解压就行了,然后需要对配置文件进行修改。进入edna的目录,找到配置文件edna.conf进行编辑(行前标记“#”的为注释行)。 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# edna.conf -- configuration file for edna.py #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# port=后面的内容是http的服务端口,默认8080 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
[server] #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
port = 8080 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#设置点歌网页的显示模版目录和文件,网页的界面根据模版进行显示,默认为default.ezt #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# template-dir = templates #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# template = default.ezt #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# 如果需要显示mp文件的id tags, 使用 default_complex.ezt,取消掉#注释标记即可 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# template = default_complex.ezt #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# 显示关于mp文件的相关信息,一般比较耗时,缺省禁止 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# fileinfo= #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# 设置用户使用本机的哪个IP及域名进行访问,适用于多网卡、多域名的主机 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# binding-hostname = dummy-host.example.com #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# binding-hostname = ... #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# 设置是否进行记录服务端信息,如果在标准输出(显示)上输出,只要标记-,否则给出 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# 文件名,若不记录,则直接用#注释掉本行 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
log = - #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#访问控制列表,允许哪些IP的机器访问,并且可以设置用户和密码 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
[acl] #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#allow = host, host, host/, ..., . #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#auth = aUser:aPa , aUser:aPa #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# 给目录层次小于auth_level的目录加上访问控制 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# 0 Only check ’/’ #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# Check all levels (default) #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# auth_level=0 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
[sources] #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# List each source directory (top of the tree). The lines should be of the #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# form: #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# dir = DIRECTORY = DI LAY_NAME #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# WARNING: the DI LAY-NAME part may *not* have a slash ("/") in it! #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# WARNING: each DIRECTORY must exist when edna is started #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# The part will determine the sort order in the top-level listing. #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# 设置服务端的音乐放置位置(windows范例) #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
dir = E:\Amuse\MUSIC = M #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#dir = f:\bo mp = Bob #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#dir = g:\MP’s = Bob CD #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# 设置服务端的音乐放置位置(Unix范例) #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#dir = /mnt/cdrom = MP CDROM #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#dir = /mp/all-albums = Jukebox #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
[extra] #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# 可选选项 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# You don’t need to change this, but maybe you need more output or want to enable some ecial features #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# 如果需要更多本程序的调试信息,设置为1 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
debug_level = 0 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
# 给上传时间少于days_new的音乐文件标注最新 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
days_new = 0 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  edna目录下还有几个子文件夹: #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  . daemon:如果在Unix主机上运行edna程序并且想把其设置为精灵程序(开机自动后台运行),可以直接运行该文件夹下的文件。 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
#‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
  . ntsvc:如果在Windows主机上想把edna作为服务进行运行,可以直接运行该文件加下的文件。 #‡‘º’d”§¡forum.pre-mbaclub.comÆ=Á•q°g
1
查看完整版本: 不在是想象:教你搭建个人音乐播放网站