用Agent+ASP技术制作语音聊天室

网络整理 - 09-18
用Agent+ASP技术制作语音聊天室
--------------------以下为程序内容,按文章中出现的顺序分块排序

<!--定义"AgentControl"-->
<OBJECT classid=clsid:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F
codeBase=#VERSION=2,0,0,0 id=Agent>
</OBJECT>

<!--定义L&H TruVoice Text-To-Speech American English -->
<OBJECT classid=clsid:B8F2846E-CE36-11D0-AC83-00C04FD97575
codeBase=#VERSION=6,0,0,0 id=TruVoice>
</OBJECT>
______________________________________________________________

尝试从微软Agent角色目录中装载
Set LoadRequestUNC = Agent.Characters.Load ("Peedy", "Peedy.acs")

  If LoadRequestUNC.Status <> 0 Then
    ' 如果失败便尝试从微软服务器下载
    Set LoadRequestURL = Agent.Characters.Load ("Peedy", "http://agent.microsoft.com/agent2/chars/peedy/peedy.acf")
  Else
    ' 现在产生一个Peedy实例
    Set Peedy = Agent.Characters("Peedy")
  End If
_____________________________________________________________

<HTML>
<BODY>
<h3><font color="#0000FF">Welcome to My Chatroom!</font></h3>
<FORM method="POST" action="default.asp">
  <p>Your name please:
  <input type="text" size="20">
  <input type="submit" value="OK"></p>
</FORM>
<p><a href="download.htm">Click here to go to download page.</a></p>
</BODY>
</HTML>
_______________________________________________________________________

<script LANGUAGE=VBscript RUNAT=Server>
Sub Application_OnStart
    Application("message")=""     '发言内容
    Application("expression")=""  '表情
    Application("sender")=""      '发言者ID
    Application("globalid")=0     '发言总序号
End Sub
</script>
_______________________________________________________________________
<%
  Session("username") = Server.HtmlEncode(Request.Form("txtUsername"))
  Session("personalid")=0
%>
<HTML>
<HEAD>
<TITLE>Welcome to My Chatroom!</TITLE>
</HEAD>
<frameset border=0 frameSpacing=0 cols="98,*" frameBorder=0>
  <frame src="agent.asp">
  <frameset rows="196,68,*">
    <frame src="display.asp">
    <frame src="refresh.asp">
    <frame src="message.asp">
  </frameset>
</frameset>
<frameset>
</frameset>
</HTML>
________________________________________________________________

<HTML>
<BODY BGCOLOR="#006699" TEXT="#FFFFFF">
<!--定义"AgentControl"-->
<OBJECT classid=clsid:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F
codeBase=#VERSION=2,0,0,0 id=Agent>
</OBJECT>
<!--定义L&H TruVoice Text-To-Speech American English -->
<OBJECT classid=clsid:B8F2846E-CE36-11D0-AC83-00C04FD97575
codeBase=#VERSION=6,0,0,0 id=TruVoice>
</OBJECT>

<script language=VBscript>
Dim Peedy
Dim LoadRequestUNC
Dim LoadRequestURL
Dim GetShowAnimation

Sub Window_OnLoad
  LoadCharacter
  ' 设置Agent的语言代号
  Peedy.LanguageID = &H0409
  ' 让Peedy出现
  Peedy.MoveTo window.event.screenX-100,window.event.screenY-100
  Peedy.Show
  ' 好啦,Peedy可以开口说话了
  Peedy.Speak "Welcome to my chatroom!"
  Peedy.Play "Greet"
End Sub

Sub Agent_RequestComplete(ByVal Request)
  ' 如果是从微软服务器装载ACF角色的请求结束
  If Request = LoadRequestURL Then
    ' 如果申请下载失败
    If Request.Status = 1 Then
      Msgbox "无法从服务器下载Peedy,可能服务器太忙。"
      Exit Sub  
      ' 如果成功
    ElseIf Request.Status = 0 Then
      ' 产生一个实例
      Set Peedy = Agent.Characters("Peedy")
      ' 预取Peedy的部分动画效果
      Set GetShowAnimation = Peedy.Get ("state", "showing, speaking")
      Peedy.Get "animation", "Blink, Greet, Pleased, Explain, Think, GestureRight,Idle1_1,Idle2_2, Announce, Uncertain", False
    End If
    ' 如果是请求预取动画效果的请求结束
  ElseIf Request = GetShowAnimation Then
    ' 如果失败
    If Request.Status = 1 Then
      Msgbox "下载动画的请求失败,可能服务器太忙。"
      Exit Sub
    End If
  End If
End Sub

' 装载Agent角色
Sub LoadCharacter
  On Error Resume Next
  ' 尝试从微软Agent角色目录中装载
  Set LoadRequestUNC = Agent.Characters.Load ("Peedy", "Peedy.acs")

  If LoadRequestUNC.Status <> 0 Then
  ' 如果失败便尝试从微软服务器下载
    Set LoadRequestURL = Agent.Characters.Load ("Peedy", "http://agent.microsoft.com/agent2/chars/peedy/peedy.acf")
  Else
    ' 产生一个Peedy实例
    Set Peedy = Agent.Characters("Peedy")
  End If
End Sub

</script>
</BODY>
</HTML>

________________________________________________________________

<HTML>
<HEAD>
<META HTTP-EQUIV="REFRESH" CONTENT=3 URL="refresh.asp">  
</HEAD>
<BODY>
<script language=VBscript>
Sub Window_OnLoad
<%
  If Session("personalid") < Application("globalid") Then
%>
    self.parent.display.document.write("<table width=100%  border=0 cellPadding=0 cellSpacing=0><font color=#0000FF>"+"<%=Application("sender")%>"+"</font>: "+"<%=Application("message")%>"+"</table>")
    self.parent.display.scroll 0, 20000000
    self.parent.agent.Peedy.Speak "<%=Application("message")%>"
    self.parent.agent.Peedy.Play  "<%=Application("expression")%>"
<%
    Session("personalid") = Application("globalid")
  End If
%>
End Sub
</script>
</BODY>
</HTML>
____________________________________________________________________

<%
  Application.Lock
  If Request.Form("txtMessage") <> "" Then
    Application("message") = Server.HtmlEncode(Request.Form("txtMessage"))
    Application("sender")  = Session("username")
    Application("expression") = Request.Form("rdoExpression")
    Application("globalid") = Application("globalid") + 1
  End If
  Application.UnLock
%>
<HTML>
<HEAD>
<STYLE type=text/css>
.smalltext {font-size: 9pt}
</STYLE></HEAD>
<BODY BGCOLOR="#006699" TEXT="#FFFFFF" >
<FORM METHOD="POST" ACTION="message.asp" name=frmMessage>
  <p>
  You are welcome,<%=Session("username")%>     
       
  </p>
  <p>
  Choose an expression:<br>
  <input type="radio" value="Idle1_1" checked>Normal     
  <input type="radio" value="Explain">Explain     
  <input type="radio" value="Greet">Greet  
  <input type="radio" value="Congratulate">Congratulate      
  <input type="radio" value="Decline">Decline
  <input type="radio" value="Pleased">Pleased
  <input type="radio" value="Think">Think     
  <input type="radio" value="Announce">Announce     
  <input type="radio" value="Uncertain">Uncertain     
  <input type="radio" value="GestureRight">Gesture Right      
  <input type="radio" value="DontRecognize">Don't Recognize  
  <input type="radio" value="GetAttention">Get Attention
  <input type="radio" value="DoMagic2">Do Magic  
  </p>
  <p>
  Message:<input type="TEXT" size=66>
  <input type="submit" value="Submit">       
  </p>
</FORM>
</BODY>
</HTML>