多首歌曲连续播放之asx播放列表文件

经常看到一些音乐站点有这样的一个功能:任意选择页面中歌曲名称前的复选框,单击播放按钮即可实现这多个被选择歌曲的连续播放。

如果是单个音频文件在文档中播放,使用常用的方法即如这里介绍的第三种方法的类似方法。

但现在是多首歌曲,方法则不尽然~曾记得使用Winamp播放器时保存的列表文件m3u,现行的MediaPlayer播放器使用的wpl列表文件格式,当然,这里我要使用的是asx播放列表文件

ASX文件是一个文本文件,他主要的目的是对流信息进行重定向,类似RPM(RM的中转文件)文件。

利用ASX文件来重定向流信息的原因主要是:目前通用的浏览器通常均不能直接支持用于播放流信息的协议MMS,所以我们采用ASX文件。

在ASX中包含了媒体内容对应的URL,当我们在HTML中让一个HYPERLINK与ASX联系时,浏览器会直接将ASX的内容送给MEDIA PLAYER,MEDIA PLAYER 会根据ASX文件的信息用相应的协议去打开指定位置上的多媒体信息流或多媒体文件。

采用ASX文件以后,当浏览器发现一个连接与ASX有关时,它知道需要用MEDIA PLAYER 来播放流信息,于是它就会启动MEIDA PLAYER,MEDIA PLAYER就可以用MMS协议来播放流信息了。

一个标准的ASX文件格式如下:

<ASX Version = "3.0">
<Entry> <Ref href = "http://server/song1.asf" /> </Entry>
<Entry> <Ref href = "http://server/song2.asf" /> </Entry>    
<Entry> <Ref href = "http://server/song3.asf" /> </Entry>
</ASX>

注意ASX文件本身并非媒体文件本身,而是媒体文件的列表,媒体文件的地址通过 Entry节点的子节点Ref 的href属性来表示。

当然,还可以通过Entry节点内定义更多子节点来丰富当前媒体文件的信息,比如:

<ASX Version = "3.0">

<Entry> 
<Ref href = "http://www.kmtv.com.cn/edit/uploadfile/200583195159842.MP3" />
<Title>Lonely (www.164.cc)</Title>
<Author>[Nana](www.164.cc)</Author>
<Copyright>属于该歌唱片公司或歌手等权利人</Copyright>
</Entry>

<Entry>
<Ref href = "http://www.syzone.cn/mov/mymp3/yeyeye.mp3" />
<Title>yeyeye (www.164.cc)</Title>
<Author>[DJ](www.164.cc)</Author>
<Copyright>属于该歌唱片公司或歌手权利人</Copyright>
</Entry>

</ASX>

其中<title></title>表示该媒体文件的标题,<Author></Author>表示该媒体文件作者(即演唱该歌曲的艺术家),<Copyright></Copyright>表示该媒体文件的版权声明。

其他更详细内容参看: http://support.microsoft.com/kb/247355/zh-cn

有了对ASX文件格式的认识,就可以自己来制作媒体播放列表文件,满足多首歌曲连续播放的要求。

那么如何将ASX文件插入到页面中进行播放呢?通常的方法就是把asx文件当作普通的媒体文件插入到页面中即可(如本文开始说提到的常用方法)

不过对于动态的歌曲播放而言,每次选择歌曲的不同则需要不同的列表文件,这很显然是不适合的,所以必须动态生成ASX的内容。

因为ASX的文件格式是固定的,所以可根据用户所选择歌曲的不同,查询相关媒体文件路径后,循环写出ASX的文件内容即可。So,在保持ASX文件格式不变的情况下,将asx文件后缀名可修改为.asp进行引用

比如: http://www.164.cc/2006/testmusic/tt.asp 
其中连接的媒体播放列表文件是: http://www.164.cc/2006/testmusic/tm.asp 
虽然媒体列表文件是asp类型,但其内容是asx的格式,这并不影响歌曲的播放。

另外,<% Response.ContentType="video/x-ms-asf" %>是ASP声明当前文件为asx文件的方法,但在tm.asp文件首行应用时,用户打开该文件链接,将自动使用本地MediaPlayer调用播放。

测试:http://www.164.cc/2006/testmusic/tm1.asp

OK,有关静态的内容先说到这,下一步就是通过数据库抽取,动态生成媒体列表文件tm.asp的内容,待续。

(0)

相关推荐

  • 多首歌曲连续播放之asx播放列表文件

    经常看到一些音乐站点有这样的一个功能:任意选择页面中歌曲名称前的复选框,单击播放按钮即可实现这多个被选择歌曲的连续播放. 如果是单个音频文件在文档中播放,使用常用的方法即如这里介绍的第三种方法的类似方法. 但现在是多首歌曲,方法则不尽然~曾记得使用Winamp播放器时保存的列表文件m3u,现行的MediaPlayer播放器使用的wpl列表文件格式,当然,这里我要使用的是asx播放列表文件 ASX文件是一个文本文件,他主要的目的是对流信息进行重定向,类似RPM(RM的中转文件)文件. 利用ASX文

  • Android音乐播放器制作 点击歌曲实现播放(二)

    上次我们实现了把手机里的音频扫描到,然后放在list集合里面,用ListView展示在手机界面上,如果没有看过的可以去看看本人的博客:Android音乐播放器制作(一)扫描本地音乐显示在手机上 这次是在上一次的基础上直接继续写代码,几行代码实现点击那首歌曲就播放那首歌曲,系统已经提供了播放音频的对象了,直接用就可以了,具体如下: 1.声明一个MediaPlayer private MediaPlayer mediaPlayer;//播放音频的 2.实例化 //初始化 mediaPlayer =

  • 易语言单击歌曲即播放实现方法

    很多学员在开发音乐播放器的时候,只有点击歌曲列表某一首歌,然后再点击播放按钮才能播放,没法单击一下就播放的功能.这个音乐播放器开发出来,会给很多用户用起来感觉太麻烦,甚至不想用,下面简单介绍一下如何解决这个问题. 1.开发好的音乐播放器界面如下,但是无法单击就播放的 2.开发好的部分代码如下,注意里面的变量a,为整数型,它是取播放点位置用的,很多人把给忘记了,即使暂停也没法继续播放. 3.出现问题的代码如下,大家看看,问题在哪里 4.不错,看到我这里有个注释掉的一段:"' 媒体播放1.播放 (-

  • 歌词编辑器和选择歌曲可播放的网页

    歌词编辑器 歌词编辑器 第一步:选择要播放的歌曲并播放 第二步:填写全部的歌词. 第三步:添加时间标签. 添加时间标记目的 1.添加时间标签(插入到光标处) 2.转到下一行(光标转到下一个回车地方,当最后一个位置不为回车符时,直接将光标移到文本末尾) 删除时间标记算法:(删除光标所在行的时间标记) 删除所有时间标记算法:(替换所有的时间标记为空) 1.匹配时间标记 2.替换 播放器 选择歌曲: 歌曲信息 歌曲名:播放后显示 添加歌词(建议:第一步填写歌词文本:第二步添加时间标签) 演唱者: 标

  • 宝丽通实现连续播放实现代码

    可以用JS来监控播放器的事件,如果播放完毕了,就用Js跳转到下一集的播放页面, 这样就可以间接实现连续播放了 复制代码 代码如下: PlayStateChange(newState) newState 0:已停止 1:已停止 2:暂停 3:正在播放 6:正在缓冲 8:播放完毕 11:重新连接 实际应用举例:  复制代码 代码如下: <SCRIPT LANGUAGE=javascript FOR=ActiveX EVENT=PlayStateChange(newState)> if(newSta

  • iOS AVPlayer切换播放源实现连续播放和全屏切换的方法

    本文主要给大家介绍了关于iOS AVPlayer切换播放源实现连续播放和全屏切换的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: AVPlayer 切换播放源有三种方式: 第一种:采用系统自带的方法: [self.player replaceCurrentItemWithPlayerItem:item] ,但是在切换playItem前要把所有的通知,观察者移除,切换后重新添加. 第二种:把通知,观察者全部移除,player 置为nil,然后重新创建. githup上ZFPlayer

  • 微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例

    本文介绍了微信小程序的开发,主要包括图片.录音.音频播放.音乐播放.视频.文件,具体如下: 图片: wx.chooseImage(OBJECT) 从本地相册选择图片或使用相机拍照. OBJECT参数说明: 注:文件的临时路径,在小程序本次启动期间可以正常使用,如需持久保存,需在主动调用 wx.saveFile,在小程序下次启动时才能访问得到. 示例代码: wx.chooseImage({ count: 1, // 默认9 sizeType: ['original', 'compressed'],

  • python使用PyGame播放Midi和Mp3文件的方法

    本文实例讲述了python使用PyGame播放Midi和Mp3文件的方法.分享给大家供大家参考.具体实现方法如下: ''' pg_midi_sound101.py play midi music files (also mp3 files) using pygame tested with Python273/331 and pygame192 by vegaseat ''' import pygame as pg def play_music(music_file): ''' stream m

  • IOS中微信小程序播放缓存的音频文件的方法

    很多时候我们都想把数据预先缓存到本地,节省带宽.但是最近在处理微信小程序播放缓存到本地的音频文件的时候,遇到一些小问题,然后对于安卓和IOS需要采用不同的播放策略. 首先,如果哪怕用audio标签来播放在线的音频文件,假如服务端没有实现断点续传,IOS是无法播放的,这个需要注意. 对于缓存在小程序的音频(wx.saveFile(OBJECT)保存的音频),IOS只能通过播放背景音乐的接口播放,其它播放方法都没有成功实践,而对于安卓,内部 audio 上下文 innerAudioContext 对

  • 微信公众号录音文件的播放与保存(amr文件转mp3)

    目录 音频转码工具 原理 JAVE 项目的问题 本项目特点 扩展 音频转码工具,主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放 1.调用微信提供的接口获取录音的InputStream字节流 public InputStream getInputStream(String mediaId) { InputStream is = null; try { String URL_DOWNLOAD_TEMP_MEDIA = "https://api.

随机推荐