asp.net播放器源码 - windowsMediaPlayer

原文:http://hi.baidu.com/chendychendy/blog/item/7e580eaecdbc64c57cd92abf.html
做了一个页面的视频播放器,功能简单,只是有些属性有记录意义。班门弄斧,请莫见笑!

功能:程序会检索指定目录下的文件,并形成文件列表显示在页面上,单击列表中的文件可以播放该文件。播放器可以以全屏方式显示,通过javascript脚本,获取播放文件的总时间和当前播放时间。时间匆忙,功能有限,有时间会将发掘的新功能加入其中,望大家批评斧正!

前台代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WindowMediaPlayer.aspx.cs"
Inherits="Players_WindowMediaPlayer" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>window media player播放器</title>
<link href="../css/styles.css" type="text/css" rel="stylesheet" />

<script language="javascript" type="text/javascript">
<!--


// 获取播放器的全屏状态信息
function SetFullScreen()
{
document.wmp.fullScreen = true;
}

// 传递播放文件参数
function SelectFile(_value)
{
window.location = "WindowMediaPlayer.aspx?strFileName="+ _value;
}

// 获取播放器的播放状态
function GetMediaPlayerState()
{
document.getElementById("playerTotalTime").value = document.wmp.currentMedia.durationString;
document.getElementById("playerCurrentlyTime").value = document.wmp.controls.currentPositionString;
}
//-->
</script>

</head>
<body>
<form id="form1" runat="server">
<div>
<table width="98%">
<tr>
<td colspan="2" align="center">
window media player播放器
</td>
</tr>
<tr>
<td style="width: 70%;" align="center">
<object classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" id="wmp">
<param name="URL" value="../playerdata/<%= strFileName%>" />
<!--媒体文件地址-->
<param name="rate" value="1" />
<param name="balance" value="0" />
<!--声道0全声道,-100左声道,100右声道-->
<param name="currentPosition" value="0" />
<param name="playCount" value="1" />
<!--播放次数-->
<param name="autoStart" value="0" />
<!--是否自动播放-1是,0否-->
<param name="currentMarker" value="0" />
<param name="invokeURLs" value="-1" />
<param name="volume" value="50" />
<!--音量-->
<param name="mute" value="0" />
<!--是否静音-1是,0否-->
<param name="uiMode" value="full" />
<!--播放器模式full(默认)显示全部控件,none仅视频窗口,mini视频及一些常用控件,invisiblei不显示任何控件及视频窗口-->
<param name="stretchToFit" value="0" />
<param name="windowlessVideo" value="0" />
<param name="enabled" value="-1" />
<param name="enableContextMenu" value="-1" />
<param name="fullScreen" value="0" />
<!--是否全屏-->
<param name="enableErrorDialogs" value="-1" />
<!--是否允许出错信息提示-->
</object>
<p>
<span onclick="SetFullScreen();" style="cursor: hand;">全屏播放</span>
</p>
总播放时间:<asp:TextBox ID="playerTotalTime" runat="server"></asp:TextBox>
<br />
当前播放时间:<asp:TextBox ID="playerCurrentlyTime" runat="server"></asp:TextBox>
<br />
<span onclick="GetMediaPlayerState();" style="cursor: hand;">手动获取状态</span>
</td>
<td style="width: 30%;" valign="top">
<table width="100%">
<tr>
<td align="center" style="height: 20px;">
选择文件
<hr />
</td>
</tr>
<!--显示指定目录中的文件列表-->
<div id="divFilesList" runat="server">
</div>
</table>
</td>
</tr>
</table>
</div>

<script language="javascript" type="text/javascript">
// 每隔一秒钟获取一次播放器的执行总时间和当前播放时间

//window.setTimeout(GetMediaPlayerState,1000); // 此方法未达到效果

var id=window.setInterval(GetMediaPlayerState,1000);
</script>

</form>
</body>
</html>

后台代码如下:

using System;
using System.Data;
using System.IO;
using System.Text;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Players_WindowMediaPlayer : System.Web.UI.Page
{
public String strFileName = "";
protected void Page_Load(object sender, EventArgs e)
{
if (!this.Page.IsPostBack)
{
if (Request.QueryString["strFileName"] != null && !Request.QueryString["strFileName"].ToString().Equals(String.Empty))
{
strFileName = Request.QueryString["strFileName"].ToString();
}

GetFilesList();
}
}

// 获取文件列表
private void GetFilesList()
{
StringBuilder sb = new StringBuilder();
String strField = Server.MapPath("~/PlayerData/");

//针对当前目录建立目录引用对象
DirectoryInfo dirInfo = new DirectoryInfo(strField);

foreach (FileInfo fi in dirInfo.GetFiles())
{
sb.AppendFormat("<tr><td><span onclick=\"SelectFile('{0}');\">{0}</span></td></tr>",fi.Name);
}

sb.AppendFormat("<tr><td><hr></td></tr><tr align=\"right\"><td>共{0}个文件</td></tr>", dirInfo.GetFiles().Length.ToString());

divFilesList.InnerHtml = sb.ToString();
}
}



posted on 2009-09-27 11:38  冷月孤峰  阅读(2600)  评论(0编辑  收藏  举报