让Flash MP3 Player运行在非PHP平台(ASPASP.NetJava静态文件)
今天从《[URL=http://paranimage.com/10-flash-and-javascript-music-players/]10款Flash和Javascript网页音乐播放器[/URL]》看到一个不错的可以支持自动记忆播放进度的网页播放器[URL=http://www.flashmp3player.org/]Flash MP3 Player[/URL],但是经过简单了解之后发现这个Flash版的播放器还需要PHP的支持,于是打算换其它的,但是找遍了搜索引擎也没找到第二款支持AutoResume功能的网页播放器,于是抱着试试看的态度研究了一下PHP代码。不看不要紧,一看才知道原来PHP代码就是根据指定的目录循环列出此目录下面的所有mp3歌曲,然后输出成xml形式。这下子一切都明朗了,于是先把官网的php文件([URL=http://www.flashmp3player.org/flashmp3player.php?file_dir=mp3]http://www.flashmp3player.org/flashmp3player.php?file_dir=mp3[/URL])输出的xml做成静态文件flashmp3player.xml如下,注意编码方式是UTF-8 Without BOM。
<br/><?xml version="1.0" encoding="utf-8"?><br/><playlist><br/> <song id="mp3demosong01" title="Behind Blue Eyes" artist="Limp Bizkit" src="http://www.flashmp3player.org/mp3/demosong01.mp3" /><br/> <song id="mp3demosong02" title="Signed Sealed Delivered" artist="Blue feat. Stevie Wonder" src="http://www.flashmp3player.org/mp3/demosong02.mp3" /><br/> <song id="mp3demosong03" title="On top of the world" artist="Edsilia Rombley" src="http://www.flashmp3player.org/mp3/demosong03.mp3" /><br/> <song id="mp3demosong04" title="Puro Amore" artist="Zucchero Sugar Fornaciari" src="http://www.flashmp3player.org/mp3/demosong04.mp3" /><br/> <song id="mp3demosong05" title="After Dark (Remix)" artist="Krafty Kuts" src="http://www.flashmp3player.org/mp3/demosong05.mp3" /><br/> <song id="mp3demosong06" title="Erase/Rewind" artist="Cardigans" src="http://www.flashmp3player.org/mp3/demosong06.mp3" /><br/> <song id="mp3demosong07" title="Let It Go" artist="Mandyleigh Storm" src="http://www.flashmp3player.org/mp3/demosong07.mp3" /><br/> <song id="mp3demosong08" title="O_ Es-tu" artist="Clemence" src="http://www.flashmp3player.org/mp3/demosong08.mp3" /><br/> <song id="mp3demosong09" title="Wood" artist="Second Person" src="http://www.flashmp3player.org/mp3/demosong09.mp3" /><br/> <song id="mp3demosong10" title="What're you Wanna Do" artist="Lily Vasquez" src="http://www.flashmp3player.org/mp3/demosong10.mp3" /><br/> <song id="mp3demosong11" title="Mockingbird" artist="Eminem" src="http://www.flashmp3player.org/mp3/demosong11.mp3" /><br/> <song id="mp3demosong12" title="New Rise" artist="LA 5" src="http://www.flashmp3player.org/mp3/demosong12.mp3" /><br/> <song id="mp3demosong13" title="Up to My Neck in the Blues" artist="the Sonny Moorman Group" src="http://www.flashmp3player.org/mp3/demosong13.mp3" /><br/> <song id="mp3demosong14" title="Boogie-Woogie Sampler" artist="Ryan Ahern" src="http://www.flashmp3player.org/mp3/demosong14.mp3" /><br/> <song id="mp3demosong15" title="Beta-Karotin" artist="BoomBox" src="http://www.flashmp3player.org/mp3/demosong15.mp3" /><br/> <song id="mp3demosong16" title="Comcast Blues" artist="PenMachine" src="http://www.flashmp3player.org/mp3/demosong16.mp3" /><br/></playlist><br/>
然后把下图位置的flashmp3player.php直接改为flashmp3player.xml
如果你用其它语言打算实现flashmp3player.php文件的相同功能,只要通过参数file_dir即可获得配置的文件路径。
最后把我做出来的例子给大家看看,我新增加了几首歌曲:[URL=http://www.cuiwenyuan.com/flashmp3player/flashmp3player.html]演示[/URL]
- 2017年与机器学习相关的10大Python开源库
- 控制并发访问的三道屏障: WCF限流(Throttling)体系探秘[上篇]
- 探秘Tomcat——从一个简陋的Web服务器开始
- EnterLib PIAB又一个BUG?[续]——这是一个致命的BUG
- Google工程师:谷歌翻译在几个月内效果明显提升的秘诀
- 回调与并发: 通过实例剖析WCF基于ConcurrencyMode.Reentrant模式下的并发控制机制
- EnterLib PIAB又一个BUG?[续]——这是一个致命的BUG
- 年终盘点2017年发生在上海的科技大新闻
- 数字供应链第六章-网络风险、知识产权盗窃、合规和数据挖掘业务合同
- 使命必达: 深入剖析WCF的可靠会话[实例篇](内含美女图片,定力差者慎入)
- 快速全面构建大数据认知体系
- 谈谈分布式事务之二:基于DTC的分布式事务管理模型[上篇]
- ConcurrencyMode.Multiple 模式下的WCF服务就一定是并发执行的吗:探讨同步上下文对并发的影响[下篇]
- 谈谈分布式事务之二:基于DTC的分布式事务管理模型[上篇]
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 01Python的基本的数据结构之List
- 02Python数据结构之再谈List的常用操作
- 03Python List不得不知的操作之改、查
- 04Python基础之字符串Str
- 05Python元组tuple的个性
- Tkinter Canvas
- Python实现最小二乘法
- 一个简单的例子学明白用Python插值
- python 类class基础简明笔记
- 数据离散化及其KMeans算法实现的理解
- [tensorflow损失函数系列]sparse_softmax_cross_entropy_with_logits
- 怎样将Anaconda设置为国内的镜像
- Python实现KMeans算法
- Python面向对象编程
- HTML和CSS常见问题整理