jsp连续播放音乐的问题,苦恼我很久拉!
现在在做一个音乐连续播放的功能,当用户选择几首音乐的时候弹出来一个播放器的筐用来播放音乐,功能我都实现拉 实现步骤是
1,根据用户选择的音乐文件生成一个asx文件,然后把这个asx文件的地址发给音频 播放器,音频 播放器代码如下:
<object id= 'MediaPlayer1 ' width= '460 ' height= '68 ' classid= 'CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 '
codebase= 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715 '
align= 'baseline ' border= '0 ' standby= 'Loading Microsoft Windows Media Player components... '
type= 'application/x-oleobject '>
<param name= 'invokeURLs ' value= '0 '>
<param name= 'FileName ' value= ' "+value+ " ' >
<param name= 'ShowControls ' value= '1 '>
<param name= 'ShowPositionControls ' value= '0 '>
<param name= 'ShowAudioControls ' value= '1 '>
<param name= 'ShowTracker ' value= '1 '>
<param name= 'ShowDisplay ' value= '0 '>
<param name= 'ShowStatusBar ' value= '1 '>
<param name= 'AutoSize ' value= '0 '>
<param name= 'ShowGotoBar ' value= '0 '>
<param name= 'ShowCaptioning ' value= '0 '>
<param name= 'AutoStart ' value= '-1 '>
<param name= 'PlayCount ' value= '0 '>
<param name= 'AnimationAtStart ' value= '0 '>
<param name= 'TransparentAtStart ' value= '0 '>
<param name= 'AllowScan ' value= '0 '>
<param name= 'EnableContextMenu ' value= '1 '>
<param name= 'ClickToPlay ' value= '0 '>
<param name= 'DefaultFrame ' value= 'datawindow '>
<embed id= 'MediaPlayer2 ' src= ' "+value+ " ' align= 'baseline ' border= '0 ' width= '468 ' height= '68 '
type= 'application/x-mplayer2 '
pluginspage= 'http://www.microsoft.com/isapi/redir.dll?prd=windows&sbp=mediaplayer&ar=media&sba=plugin& '
name= 'MediaPlayer ' showcontrols= '1 ' showpositioncontrols= '0 '
showaudiocontrols= '1 ' showtracker= '1 ' showdisplay= '0 '
showstatusbar= '1 '
autosize= '0 '
showgotobar= '0 ' showcaptioning= '0 ' autostart= '1 ' autorewind= '0 '
animationatstart= '0 ' transparentatstart= '0 ' allowscan= '1 '
enablecontextmenu= '1 ' clicktoplay= '0 '
defaultframe= 'datawindow ' invokeurls= '0 '>
</embed>
</object>
其中 <param name= 'FileName ' value= ' "+value+ " ' > 这个value 就是asx文件的地址 但是现在有个问题是,每次都要生成一个asx文件,用户停止播放后就成为了垃圾文件拉,请问那位兄弟有没有更好的解决方法呢?
[解决办法]
这么麻烦啊!你可以参考一下我的在线音乐播放系统!
www.ilkj.net
我的音乐连续播放功能,就是利用asx播放列表,但这个文件不用每次生成的啊!
啥叫“动态网站”,直白点说,当然不能生成一堆垃圾文件了!
你可以把asx文件写成jsp文件,然后在page指令头里用多媒体解析这个jsp文件,就像我们做验证码一样,用image/jpeg解析jsp文件就变成图片了!默认的jsp文件page指令是这样的, <%@page language= "java " contentType= "text/html; charset=UTF-8 " %> ,你可以把contentType改成contentType= "video/x-ms-asf; charset=gb2312 ",这样就可以让WMP在线播放器认识这个jsp文件了,然后你把多个音乐文件路径循环写入这个文件,不就OK了!
这个是我的站点的JSP连续播放文件源代码,你可以参考一下!
<%@ page language= "java " contentType= "video/x-ms-asf; charset=gb2312 "%>
<%
//音乐文件所在的目录,我这里用的是绝对路径,自己随意
String songid=(String)request.getAttribute( "songid ");
/*从Servlet中传过来的多个音乐文件,之间用 "_ "连接
然后再用String类的split( " ")方法拆分字符串为数组,将字符串数组循环
写入asx标记中*/
String[] str=songid.split( "_ ");
%>
<ASX Version = "3.0 ">
<%
for(int i=0;i <str.length;i++)
{
/*我的站点音乐文件和JSP程序不在一个服务器上
文件录入数据库时没有加扩展名,所以我下面加上了 ".wma ",自己随意
*/
str[i]=str[i]+ ".wma ";
%>
<Entry>
<Author> </Author>
<Copyright> 低品质音乐,仅供试听!请支持正版唱片! </Copyright>
<Title> </Title>
<Param Name = "WM/AlbumTitle " Value = "爱龙♂空间[www.ilkj.net] " />
<Ref href = " <%=url+str[i]%> " />
</Entry>
<%
}
%>
</ASX>