我碰到一很怪的问题:我本来想在VB中用realaudio控制做一个在线电影播放器。我收集了很多免费电影的网址。比如"rtsp://202.101.113.55/gongfu.rmvb" 这个网址
(1)如果我把这个网址直接输入浏览器的地址栏中,那么会自动启动RealPlay播放器,而且播放正常。
(2)我用ShellExecute API调用ShellExecute(0&,"Open","rtsp://202.101.113.55/gongfu.rmvb"),结果能调出Realplay播放器,可就是一直都连接不上。
(3)在RealAudio的属性页中设置Source的值为"rtsp://202.101
.113.55/gongfu.rmvb",Controls的值设置为"ImageWindow,ControlPanel,StatusBar",然后直接运行,按播放键,RealPlay能够很好的播放。
(4)在程序中动态设置RealAudio控制的Source="rtsp://202.101.113.55/gongfu.rmvb",Controls="ImageWindow,ControlPanel,StatusBar",启动Realaudio.Doplay事件,RealPlay播放器一直停在"正在通信........"的画面。
我的程序是用一个变量Mv_Path存放影片的URL,然后给RealAudio控制的Source赋值,然后希望播放器能自动的播放该影片。可是就是停在“正在通信........."上,而如果直接把地址复制到浏览器的地址栏却可以观看电影,这是为什么,希望有个高人能帮我解决,我感恩不尽,答案满意的,我给100分。
(1)如果我把这个网址直接输入浏览器的地址栏中,那么会自动启动RealPlay播放器,而且播放正常。
(2)我用ShellExecute API调用ShellExecute(0&,"Open","rtsp://202.101.113.55/gongfu.rmvb"),结果能调出Realplay播放器,可就是一直都连接不上。
(3)在RealAudio的属性页中设置Source的值为"rtsp://202.101
.113.55/gongfu.rmvb",Controls的值设置为"ImageWindow,ControlPanel,StatusBar",然后直接运行,按播放键,RealPlay能够很好的播放。
(4)在程序中动态设置RealAudio控制的Source="rtsp://202.101.113.55/gongfu.rmvb",Controls="ImageWindow,ControlPanel,StatusBar",启动Realaudio.Doplay事件,RealPlay播放器一直停在"正在通信........"的画面。
我的程序是用一个变量Mv_Path存放影片的URL,然后给RealAudio控制的Source赋值,然后希望播放器能自动的播放该影片。可是就是停在“正在通信........."上,而如果直接把地址复制到浏览器的地址栏却可以观看电影,这是为什么,希望有个高人能帮我解决,我感恩不尽,答案满意的,我给100分。
还是没用分析一下具体的原因啊......
ShellExecute 0, "open", "rtsp://202.96.189.47/test/350test.rm", vbNull, "", 0
End Subvb6 sp5+xp sp2+realone 2.0下通过。。
(1)功夫。rtsp://202.101.113.196/vod4/050113/功夫/a.rmvb
(2)天下无赋。rtsp://202.101.113.200/vod2/041228/天下无贼/a.rmvb
希望知道如何解决这个问题的大侠帮我啊,我送你一份有2000部电影的URL的数据库,绝对能看的。谢了.
我上面给出的连接是离我们比较近的一个视频网站的测试文件,在我这里用我上面的代码是完全正常得到。。如果你有兴趣也可以去看看。。
http://media.zsnet.com/movie_gangcp.htm
Dim strRealPlayer As String
strMovieUrl = "rtsp://202.96.189.47/test/350test.rm"
strRealPlayer = "C:\Program Files\Real\RealPlayer\realplay.exe"
ShellExecute 0, "open", strRealPlayer, strMovieUrl, vbNullString, 5也可以使用WebBrowser控件: WebBrowser1.Navigate strMovieUrl
就这个网站首页原代码的最后一段脚本就是了<OBJECT Classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" id="RM" width=0 height=0></OBJECT>
<OBJECT ClassId="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id="MP" width=0 height=0></OBJECT>
<script language=vbscript>
Dim PlayList,sTimeList,eTimeList,timeoutID
On Error Resume Next
RM.SetWantErrors True
RM.SetVolume(80)
MP.Volume=-600
'=====================List Start===========================
'格式 Add 地址,开始时间,结束时间
'时间格式 hh:mm:ss
Add "http://live.cri.com.cn/fm915.ram","06:00:00","11:00:00"
Add "http://radio.fm974.tom.com:554/encoder/live.rm","11:00:00","12:00:00"
'Add "rtsp://broadcast.21cn.com/live2","01:00:00","08:00:00"
Add "mms://vstream.sina.com.cn/900","12:00:00","17:00:00"
Add "http://69.93.71.164/dm/uggc/jjj.ibnarjf.pbz/erny/yvir/chinese.ram","17:00:00","18:25:00"
Add "mms://vstream.sina.com.cn/900","18:25:00","00:00:00"
'=====================List End=============================
Call Play()
Sub Add(StrList,StartTime,EndTime)
If Len(PlayList)=0 Then
PlayList=StrList
sTimeList=StartTime
eTimeList=EndTime
Else
PlayList=PlayList & vbcrlf & StrList
sTimeList=sTimeList & vbcrlf & StartTime
eTimeList=eTimeList & vbcrlf & EndTime
End If
End Sub
Function Play()
Dim mType,List,StartTime,EndTime,I,eTime,nTime,sTime,LastTime
List=Split(PlayList,vbcrlf)
Play=0
StartTime=Split(sTimeList,vbcrlf)
EndTime=Split(eTimeList,vbcrlf)
If RM.GetPlayState<>0 Then RM.DoStop
If MP.PlayState<>0 Then MP.Stop
clearTimeout timeoutID
For I=0 To UBound(List)
nTime=TimeSerial(Hour(Now),Minute(Now),Second(Now))
eTime=EndTime(I)
sTime=StartTime(I)
If (DateDiff("s",eTime,nTime)>0) And (DateDiff("s",sTime,nTime)>0) And (DateDiff("s",eTime,sTime)>0) Or (DateDiff("s",nTime,eTime)>0) And (DateDiff("s",sTime,nTime)>0) And (DateDiff("s",sTime,eTime)>0) Or (DateDiff("s",nTime,eTime)>0) And (DateDiff("s",nTime,sTime)>0) And (DateDiff("s",eTime,sTime)>0) Then
If LCase(Left(List(I),7))="rtsp://" Or LCase(Right(List(I),2))="rm" Or LCase(Right(List(I),3))="ram" Then mType="RealPlay" Else mType="MediaPlayer"
Select Case LCase(mType)
Case "realplay"
Rm.DoStop
RM.Source=List(I)
RM.DoPlay
Case "mediaplayer"
MP.Stop
MP.FileName=List(I)
MP.Play
End Select
LastTime=DateDiff("s",nTime,eTime)
If LastTime<=0 Then LastTime=LastTime+86400
timeoutID=SetTimeout("Play()",1000*LastTime)
Play=1
Exit function
End If
Next
timeoutID=SetTimeout("Play()",1000)
end function
Sub PL_onClick()
If Play()=0 Then
Msgbox "不在播放时段内"
End If
End Sub
Sub ST_onClick()
clearTimeout timeoutID
If RM.GetPlayState<>0 Then RM.DoStop
If MP.PlayState<>0 Then MP.Stop
End Sub</script>
<OBJECT ClassId="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id="MP" width=0 height=0></OBJECT>
<script language=vbscript>
Dim PlayList,sTimeList,eTimeList,timeoutID
On Error Resume Next
RM.SetWantErrors True
RM.SetVolume(80)
MP.Volume=-600
'=====================List Start===========================
'格式 Add 地址,开始时间,结束时间
'时间格式 hh:mm:ss
Add "http://live.cri.com.cn/fm915.ram","06:00:00","11:00:00"
Add "http://radio.fm974.tom.com:554/encoder/live.rm","11:00:00","12:00:00"
'Add "rtsp://broadcast.21cn.com/live2","01:00:00","08:00:00"
Add "mms://vstream.sina.com.cn/900","12:00:00","17:00:00"
Add "http://69.93.71.164/dm/uggc/jjj.ibnarjf.pbz/erny/yvir/chinese.ram","17:00:00","18:25:00"
Add "mms://vstream.sina.com.cn/900","18:25:00","00:00:00"
'=====================List End=============================
Call Play()
Sub Add(StrList,StartTime,EndTime)
If Len(PlayList)=0 Then
PlayList=StrList
sTimeList=StartTime
eTimeList=EndTime
Else
PlayList=PlayList & vbcrlf & StrList
sTimeList=sTimeList & vbcrlf & StartTime
eTimeList=eTimeList & vbcrlf & EndTime
End If
End Sub
Function Play()
Dim mType,List,StartTime,EndTime,I,eTime,nTime,sTime,LastTime
List=Split(PlayList,vbcrlf)
Play=0
StartTime=Split(sTimeList,vbcrlf)
EndTime=Split(eTimeList,vbcrlf)
If RM.GetPlayState<>0 Then RM.DoStop
If MP.PlayState<>0 Then MP.Stop
clearTimeout timeoutID
For I=0 To UBound(List)
nTime=TimeSerial(Hour(Now),Minute(Now),Second(Now))
eTime=EndTime(I)
sTime=StartTime(I)
If (DateDiff("s",eTime,nTime)>0) And (DateDiff("s",sTime,nTime)>0) And (DateDiff("s",eTime,sTime)>0) Or (DateDiff("s",nTime,eTime)>0) And (DateDiff("s",sTime,nTime)>0) And (DateDiff("s",sTime,eTime)>0) Or (DateDiff("s",nTime,eTime)>0) And (DateDiff("s",nTime,sTime)>0) And (DateDiff("s",eTime,sTime)>0) Then