功能:程序会检索指定目录下的文件,并形成文件列表显示在页面上,单击列表中的文件可以播放该文件。播放器可以以全屏方式显示,通过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">
<!--
/* ======================================================================================================== *
* 播放器属性参数一览
*
* document.wmp.PlayState;
* wmp.URL="" //播放媒体地址
* wmp.controls.play() //开始播放
* wmp.controls.stop() //停止播放
* wmp.controls.pause() //暂停播放
* wmp.settings.mute=true | false //控制是否静音
* wmp.fullScreen=true | false //控制是否全屏
*
* //获取播放机状态
* wmp.playState //播放机状态,共有1-10个状态,具体如下
* wmp.playState==1 //停止播放
* wmp.playState==2 //暂停播放
* wmp.playState==3 //正常播放
* wmp.playState==4 //向前搜索
* wmp.playState==5 //向后搜索
* wmp.playState==6 //缓冲处理
* wmp.playState==7 //等待反应
* wmp.playState==8 //播放完毕
* wmp.playState==9 //连接媒体
* wmp.playState==10 //准备就绪
*
* wmp.controls.currentPositionString //取得媒体当前位置,以形如 06:01 的时间形式显示
* wmp.controls.currentPosition //取得媒体当前位置,以形如 300.001 的秒数形式显示,精确到毫秒
* wmp.currentMedia.durationString //取得媒体总长度,以形如 06:01 的时间形式显示
* wmp.currentMedia.duration //取得媒体总长度,以形如 300.001 的秒数形式显示,精确到毫秒
* ====================================================================================================== */
// 获取播放器的全屏状态信息
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 οnclick="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 οnclick="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 οnclick=/"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();
}
}