使用windows media player控件播放一个asx文件,如下<asx version="3.0">
<title></title>
<entry>
<ref href="D:\1.wmv" />
<starttime value="0:0:0" />
<duration value="0:5:0" />
</entry>
<entry>
<ref href="D:\2.wmv" />
<starttime value="0:0:0" />
<duration value="0:10:0" />
</entry>
<entry>
<ref href="D:\3.wmv" />
<starttime value="0:0:0" />
<duration value="0:15:0" />
</entry>
</asx>
如上文件,总长度是20分钟,分3个文件一、
我想让windows media player播放总长度的第10分钟,也就是2.wmv的第5分钟,
如何设置这个跳转?windowsmediaplayer1.url = "xxxx.asx"
windowsmediaplayer1.Controls.currentPosition = 10 这样写不行...二、
如何知道当前播放到哪了?
windowsmediaplayer1.controls.currentPosition是当前播放的文件的正在播放的位置,可是怎么知道当前正在播放第几个呢?
不知道以上说明白我的意思了没有,
我想做的是:
windowsmediaplay自动播放asx时,每段(entry)会有一个进度条,我想让整个asx出现一个完整的进度条.本例中出现一个长20分钟的进度条,而不是一个5分钟的进度条+一个10分钟进度条+一个15分钟进度条

解决方案 »

  1.   

    'Tlen = WindowsMediaPlayer1.currentMedia.duration 歌曲总长度
    'CurPos = WindowsMediaPlayer1.Controls.currentPosition '目前进度'添加 Command1  Timer1  WindowsMediaPlayer1  Slider1Dim Tlen&, CurPos&
    Private Sub Form_Load()
       Timer1.Interval = 100
       Timer1.Enabled = False
    End SubPrivate Sub Command1_Click()
       WindowsMediaPlayer1.URL = "c:\wf.wma"
       WindowsMediaPlayer1.Controls.play
       Tlen = 0: Slider1.Min = 0
       Timer1.Enabled = True
    End SubPrivate Sub Timer1_Timer()
       If Tlen <= 0 Then Tlen = WindowsMediaPlayer1.currentMedia.duration
       If Tlen > 0 Then
          Slider1.Max = Tlen
          CurPos = WindowsMediaPlayer1.Controls.currentPosition
          Me.Caption = CStr(Tlen) & "---" & CStr(CurPos)
          Slider1.Value = CurPos
       End If
       If WindowsMediaPlayer1.playState = wmppsStopped Then
         'WindowsMediaPlayer1.URL = 下一首歌
          WindowsMediaPlayer1.Controls.play '继续播放
       End If
    End Sub'*********************************************************
    [基本属性]   
    URL:String; 指定媒体位置,本机或网络地址 
    uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible 
    playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪 
    enableContextMenu:Boolean; 启用/禁用右键菜单 
    fullScreen:boolean; 是否全屏显示 
     [controls] wmp.controls //播放器基本控制 
    controls.play; 播放 
    controls.pause; 暂停 
    controls.stop; 停止 
    controls.currentPosition:double; 当前进度 
    controls.currentPositionString:string; 当前进度,字符串格式。如“00:23” 
    controls.fastForward; 快进 
    controls.fastReverse; 快退 
    controls.next; 下一曲 
    controls.previous; 上一曲 
     [settings] wmp.settings //播放器基本设置 
    settings.volume:integer; 音量,0-100 
    settings.autoStart:Boolean; 是否自动播放 
    settings.mute:Boolean; 是否静音 
    settings.playCount:integer; 播放次数 
     [currentMedia] wmp.currentMedia //当前媒体属性 
    currentMedia.duration:double; 媒体总长度 
    currentMedia.durationString:string; 媒体总长度,字符串格式。如“03:24” 
    currentMedia.getItemInfo(const string); 获取当前媒体信息"Title"=媒体标题,"Author"=艺术家,"Copyright"=版权信息,"Description"=媒体内容描述,"Duration"=持续时间(秒),"FileSize"=文件大小,"FileType"=文件类型,"sourceURL"=原始地址 
    currentMedia.setItemInfo(const string); 通过属性名设置媒体信息 
    currentMedia.name:string; 同 currentMedia.getItemInfo("Title") 
     [currentPlaylist] wmp.currentPlaylist //当前播放列表属性 
    currentPlaylist.count:integer; 当前播放列表所包含媒体数 
    currentPlaylist.Item[integer]; 获取或设置指定项目媒体信息,其子属性同wmp.currentMedia WMP:属性图
    http://p.blog.csdn.net/images/p_blog_csdn_net/cbm666/366646/o_wmp.jpghttp://p.blog.csdn.net/images/p_blog_csdn_net/cbm666/366646/o_SaveVideo.jpg
      

  2.   

    cbm666,谢谢你的回复,不过你贴的代码,一点帮助都没有我要问的不是取currentPosition currentMedia等,是取ASX文件中其他entry部分,或者总计
      

  3.   

    用mediaplayer1.currentPlaylist.item[i].duration统计得到了controls.next next next的一个一个的跳转到我要播放的entry上虽然很笨,目前找不到更好办法了