小弟是.net初哥,刚开始工作不久,近日在做一个录音查询,根据客户在datagrid中选择的一条录音,用数据库中相关值形成一个文件路径,然后把原始文件经过处理之后变成.wav格式放在地址下,我用一个WindowsMediaPlayer(是从vs2003中引用的一个com组件)来播放
<OBJECT classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" VIEWASTEXT>
   <PARAM NAME="URL" VALUE="<%# WavTarget %>">
…………
…………
</object>
得到WavTarget之后用databind()实现了,可是现在要求又变了,要在客户选择一条之后,只要他不主动返回主界面,录音就会一条一条的不停的放下去,其间想录哪条可以随时存储,这都是后话,关键是怎么实现连续播放的问题,我开始的思路在想是不是会有一个音乐播放完成的什么标识可以参照,可是找来找去都没有,而且我都不知道怎么在代码中引用这个player(不好意思水平差)
请大家有空指点指点该怎么实现,或者有什么比较好的,流行的方法,不太难的能给我一个思路.顺便再问个问题,我想写一个遍历aspx页面的控件并可以变换语言环境的类,我写的是继承了system.web.ui.page(可以引用page了),于是在类里面定义了一个getcontrols方法,但是在页面中使用的时候完全没有效果,连page.controls.count的值都取不到,于是只能在每个页里把这些代码写一次,我们经理发邮件跟我说:"代码重用,很重要,适当停下来花时间找答案。练习从互联网找资料的能力,这个能力很重要。"....郁闷死了.我把代码贴一些出来大家帮忙看看,刚开始工作是这样子的,问题比较幼稚,大家包涵包涵,下面是带码

解决方案 »

  1.   

    Sub SetLanguage()                       
      
            Dim strUserLanguage As String
            strUserLanguage = Session("language")
                 
            Dim strCon As String
            Dim strSQL As String
            Dim objSetLang As clsLang      'clsLang类变量,现在这里面只产生一个hash表
            Dim hashDataHash As Hashtable        strCon = "provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath("/mdr/lang.mdb")
            strSQL = "select * from lang"
            objSetLang = New clsLang(strCon, strSQL)        'clsLang类实例        hashDataHash = objSetLang.GetDataPack()        
            Dim MyControl As System.Web.UI.Control          '控件
            Dim i, j As Integer                          '循环变量
            Dim stcLanguage As clsLang.LangRecord
            Dim stcLanguagebuffer As clsLang.LangRecord
            Dim strControlsText As String                   '记录控件的原始text
            j = Page.Controls.Count - 1                   'Page.Controls.Count为控件集合的数量
            For i = 0 To j
                For Each MyControl In Page.Controls(i).Controls
                    '只判断这几种情况,其它控件暂不考虑
                    If TypeOf (MyControl) Is Label Then                 'label
                        If hashDataHash.Contains(Trim(CType(MyControl, Label).Text)) Then
                     stcLanguage = hashDataHash.Item(Trim(CType(MyControl, Label).Text))                        Select Case strUserLanguage
                                Case "CHS"
                                     CType(MyControl, Label).Text = stcLanguage.CHS
                                Case "CHT"
                                     CType(MyControl, Label).Text = stcLanguage.CHT
                                Case "ENG"
                                    CType(MyControl, Label).Text = stcLanguage.ENG
                                 Case "OTHER"
                                    CType(MyControl, Label).Text = stcLanguage.ENG
                            End Select
                        End If
                    ElseIf TypeOf (MyControl) Is Button Then               'button
                       ………………
                    ElseIf TypeOf (MyControl) Is DataGrid Then              'datagrid
                        Dim k As Integer
                        Select Case strUserLanguage
                            Case "CHS"
                  For k = 0 To CType(MyControl, DataGrid).Columns.Count()-1
                     If CType(MyControl, DataGrid).Columns(k).Visible = True Then
      stcLanguage = hashDataHash.Item(CType(MyControl, DataGrid).Columns(k).HeaderText)
      CType(MyControl, DataGrid).Columns(k).HeaderText =stcLanguage.CHS 
                   End If
                  Next
                         CType(MyControl, DataGrid).DataBind()                           ElseIf TypeOf (MyControl) Is TextBox Then               'textbox
                    ElseIf TypeOf (MyControl) Is DropDownList Then          'dropdpwnlist
                    Else                                                     '可以补充
                    End If
                Next
            Next
        End Sub
      

  2.   

    没办法了~~我用了一个.asx把地址都写进去,设置它的地址为mediaplayer的url.但是怎么判断当前播放的音乐路径啊?在代码里好象不能引用WindowsMediaPlayer啊!请指点指点!
      

  3.   

    <object id="vid" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="800"
        height="600" align="middle">
          <param name="_ExtentX" value="11298">
          <param name="_ExtentY" value="7938">
          <param name="AUTOSTART" value="-1">
          <param name="SHUFFLE" value="0">
          <param name="PREFETCH" value="0">
          <param name="NOLABELS" value="-1">
          <param name="SRC" value="../mpg/01.rm">
          <param name="CONTROLS" value="Imagewindow">
          <param name="CONSOLE" value="clip1">
          <param name="LOOP" value="0">
          <param name="NUMLOOP" value="0">
          <param name="CENTER" value="0">
          <param name="MAINTAINASPECT" value="0">
          <param name="BACKGROUNDCOLOR" value="#000000">
        </object> 注意其中的AUTOSTART,-1表示循环播放
      

  4.   

    楼上的大哥!你说的是重复循环一个或者一组,关键是我这里的数据库每一个都对应一个录音的wav,我肯定会是先取出十条或者二十条,完了之后再去处理二十条,而且中途还有用户随时都能保存的功能,所以肯定会有一个什么标识或者属性之类的东西吧?哎……郁闷!
      

  5.   

    顶之~~~虽然我现在改为用API自己控制了!但是我还是想知道这个怎么做的挖!
      

  6.   

    依旧是这个问题啊!使可以回答回答~~怎么才可以在代码中取得或者设置mediaplayer的属性方法