请教各位老大:
我在datalist中databinder了编号,名称,简介和一个linkbutton(在线播放),请问各位这个在线播放如何实现呀?播放的是RM文件,本机上的;在数据库中有文件名一项,只要根据这个文件名然后播放本机上的RM文件即可,这个功能能实现吗?
我在datalist中databinder了编号,名称,简介和一个linkbutton(在线播放),请问各位这个在线播放如何实现呀?播放的是RM文件,本机上的;在数据库中有文件名一项,只要根据这个文件名然后播放本机上的RM文件即可,这个功能能实现吗?
<embed id="MediaPlaye" name="MediaPlaye" src='31.mp3' autostart=1 loop=1></embed>
<input type=button onclick="document.embeds('MediaPlaye').stop()" value=stop>
<input type=button onclick="document.embeds('MediaPlaye').play()" value=play>
</body>2><html>
<body>
<p><object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id="MediaPlayer1" width="281" height="238">
<param name="AudioStream" value="-1">
<param name="AutoSize" value="0">
<param name="AutoStart" value="-1">
<param name="AnimationAtStart" value="-1">
<param name="AllowScan" value="-1">
<param name="AllowChangeDisplaySize" value="-1">
<param name="AutoRewind" value="0">
<param name="Balance" value="0">
<param name="BaseURL" value>
<param name="BufferingTime" value="5">
<param name="CaptioningID" value>
<param name="ClickToPlay" value="-1">
<param name="CursorType" value="0">
<param name="CurrentPosition" value="-1">
<param name="CurrentMarker" value="0">
<param name="DefaultFrame" value>
<param name="DisplayBackColor" value="0">
<param name="DisplayForeColor" value="16777215">
<param name="DisplayMode" value="0">
<param name="DisplaySize" value="4">
<param name="Enabled" value="-1">
<param name="EnableContextMenu" value="-1">
<param name="EnablePositionControls" value="-1">
<param name="EnableFullScreenControls" value="0">
<param name="EnableTracker" value="-1">
<param name="Filename" value>
<param name="InvokeURLs" value="-1">
<param name="Language" value="-1">
<param name="Mute" value="0">
<param name="PlayCount" value="1">
<param name="PreviewMode" value="0">
<param name="Rate" value="1">
<param name="SAMILang" value>
<param name="SAMIStyle" value>
<param name="SAMIFileName" value>
<param name="SelectionStart" value="-1">
<param name="SelectionEnd" value="-1">
<param name="SendOpenStateChangeEvents" value="-1">
<param name="SendWarningEvents" value="-1">
<param name="SendErrorEvents" value="-1">
<param name="SendKeyboardEvents" value="0">
<param name="SendMouseClickEvents" value="0">
<param name="SendMouseMoveEvents" value="0">
<param name="SendPlayStateChangeEvents" value="-1">
<param name="ShowCaptioning" value="0">
<param name="ShowControls" value="-1">
<param name="ShowAudioControls" value="-1">
<param name="ShowDisplay" value="0">
<param name="ShowGotoBar" value="0">
<param name="ShowPositionControls" value="-1">
<param name="ShowStatusBar" value="0">
<param name="ShowTracker" value="-1">
<param name="TransparentAtStart" value="0">
<param name="VideoBorderWidth" value="0">
<param name="VideoBorderColor" value="0">
<param name="VideoBorder3D" value="0">
<param name="Volume" value="0">
<param name="WindowlessVideo" value="0">
</object>
</p>
</body>
</html>3>
http://msdn.microsoft.com/library/en-us/wmplay/mmp_sdk/simpleexampleofscriptinginawebpage.asp?frame=true<HTML>
<HEAD>
</HEAD>
<BODY>
<OBJECT ID="Player" height="0" width="0"
CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
</OBJECT>
<INPUT TYPE="BUTTON" NAME="BtnPlay" VALUE="Play" OnClick="StartMeUp()">
<INPUT TYPE="BUTTON" NAME="BtnStop" VALUE="Stop" OnClick="ShutMeDown()">
<SCRIPT>
<!--function StartMeUp ()
{
Player.URL = "laure.wma";
}function ShutMeDown ()
{
Player.controls.stop();
}-->
</SCRIPT>
</BODY>
</HTML>4>www.souxin.com5>rm文件制作出来了,在本地用REALPLAY可以播放,但放到服务器还是报告“出现常规错误。”我嵌入播放器的代码是这么写的:
<object width="500" height="450" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA">
<param name="CONTROLS" value="ImageWindow">
<param name="CONSOLE" value="Video">
<param name="CENTER" value="TRUE">
<param name="MAINTAINSPECT" value="TRUE">
<param name="SRC" value="../medias/<%=Request("id")%>.rm">
</object>其中Request("id")是rm文件名。是不是不能这样直接播放RM文件?或者还要架设什么流媒体服务器?
<span id="mp3"></span><script language="JavaScript">
var mPlayCode = "<OBJECT id=MediaPlayer width=360 height=42 codeBase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,1,5,217 type=application/x-oleobject classid=clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95></OBJECT>";function PlayOf(Obj){
if (document.all["mp3"].innerHTML != mPlayCode){document.all["mp3"].innerHTML = mPlayCode;}
MediaPlayer.stop();
MediaPlayer.EnableContextMenu = 0;
MediaPlayer.PlayCount = 99;
MediaPlayer.Volume = -1;
MediaPlayer.AutoStart = 1;
MediaPlayer.Filename = Obj;
}
</script><a href="arli://" onclick="PlayOf('/MPGFILE/MYFILE.MPG');return false;">click Play</a>
<object classid="clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA" id="RealAudio1" width="300" height="227">
<param name="_ExtentX" value="7938">
<param name="_ExtentY" value="6006">
<param name="AUTOSTART" value="-1">
<param name="SHUFFLE" value="-1">
<param name="PREFETCH" value="0">
<param name="NOLABELS" value="0">
<param name="SRC" value="/rm/大话西游之月光宝盒A.rmvb">
<param name="CONTROLS" value="ImageWindow,controlpanel">
<param name="LOOP" value="0">
<param name="NUMLOOP" value="0">
<param name="CENTER" value="-1">
<param name="MAINTAINASPECT" value="0">
<param name="BACKGROUNDCOLOR" value="#000000">
</object>
在我这是正常的,如果你出现常规错误(一般是文件没找到或不正常的传输格式)就可能是服务器对rm 和mpg 之类的进行了mime 映射,使它不以流的方式传输,目前有很多的空间是这样以避免流量超载。摘自CSDN.
<headertemplate>
</headertemplate>
<itemtemplate>
<table width="780" border="0" cellpadding="0" cellspacing="0">
<tr id="chk" height="30" Runat="server">
<td width="30">
<div align="Center">
<input type="hidden" id="SelectedID" runat="server" value='<%# DataBinder.Eval(Container.DataItem, "id")%>' NAME="SelectedID"/>
<asp:CheckBox ID="chkExport" onclick="javascript:clickcompareBox(this);" Runat="server" />
</div>
</td>
<td width="390" rowspan="1" class="zhong13h"><a href='trydetail.aspx?id=<%# DataBinder.Eval(Container.DataItem,"id").ToString() %>' target=_blank>
<%# CutString(DataBinder.Eval(Container.DataItem,"title").ToString(),27) %>
</a>
</td>
<td width="260" class="zhong13h">
<%# CutString(DataBinder.Eval(Container.DataItem,"keys").ToString(),17) %>
</td>
<td width="100" rowspan="1" class="zhong13h"><div align="center"><%# DataBinder.Eval(Container.DataItem,"lutime","{0:D}").ToString() %></div>
</td>
</tr>
</table>
</itemtemplate>
</asp:datalist>
后台定位代码
private void Button1_Click(object sender, System.EventArgs e)
{
// System.Web.UI.WebControls.CheckBox chkExport;
System.Collections.ArrayList oExArgs = new System.Collections.ArrayList();
string sID;
string id;
foreach(DataListItem oDataListItem in score.Items)
{
chkExport = (CheckBox)oDataListItem.FindControl("chkExport");
if( chkExport.Checked)
{
sID = ((HtmlInputHidden)oDataListItem.FindControl("SelectedID")).Value;
oExArgs.Add(sID);
}
}
int i = 0;
string s="select id,title,keys,content,cw_pic,d_class,x_class,lutime from cw_jy where 1=1 ";
string s1="";
for( i = 0;i<oExArgs.Count;i++)
{
if (oExArgs[i]!=null)
{
id=oExArgs[i].ToString().Trim();
if (i==0)
{
s1=s1+" and id="+id;
}
else
{
s1=s1+" or id="+id;
}
}
else
{
Response.Write("<script laguage='javascript'>history.back();</script>");
}
}
if(s!=(s+s1))
{
Session["str"]=s+s1;
Response.Write("<script laguage='javascript'>window.open('detail.aspx');</script>");
}
else
{
Response.Write("<script laguage='javascript'>alert('请选择!');</script>");
} }
另外大家用ASP.NET做在线播放的时候,一般都怎么做啊?文件那么多,也不能一个一个连吧,况且文件名也没有什么关系,好像循环也不行啊,,,,???唉,,,真是难啊,,,想不到答案!
sql = "select 编号,名称,简介,'../rm/' & 电影名称字段名 & '.rm' as rmname from table ";
然后根据上述的SQL语句,求取数据,再绑定到datalist中,则生成的链接中,自然就如上述形成的链接,点击即可播放.
其中的路径,你必须自行设定.