| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
wmp.URL = "rtsp://nettv1.supernj.com/njmovie"
wmp.Controls.play
3、停止播放 网管bitscn_com
通过控件的stop方法实现停止,编程方法如下:
网管下载dl.bitscn.com
wmp.Controls.stop 网管u家u.bitscn@com
4、全屏播放
通过控件的fullScreen属性实现全屏播放,编程方法如下:
网管网www.bitscn.com
wmp.fullScreen = True
5、音量设置
通过控件的volume属性实现音量调节,编程方法如下:
wmp.settings.volume = Vol
注:Vol取值范围0~100。这种方法是改变控件自身的输出音量,对系统音量无影响。
6、地址的隐蔽
在播放状态下,可通过控件的右键菜单中的“属性”选项查看到播放地址,如果你对地址需要保密,那么可以让控件处于不活动状态,在编程中,即使设置控件的Enabled属性为Flase也不能屏蔽该控件的右键菜单,那么我们最好是把该控件放置在一个Picture控件中,并设置Picture控件的Enabled属性为False就能达到目的。
7、视频窗口的调整
通过设置控件的Width和Height属性可改变图像大小,编程方法和代码如下: 网管联盟bitsCN@com
wmp.Width = Picture1.Width
wmp.Height = Picture1.Height * vZooms
wmp.Left = (Picture1.Width - wmp.Width) \ 2
wmp.Top = (Picture1.Height - wmp.Height) \ 2
注:vZooms是缩放比例,以Picture1为参照物。该控件在图像缩放时横纵比例始终保持一致,如果横纵比例与Picture1大小失调,将在上下或左右两边出现黑色空白区域。
上面已分析WMP.DLL控件的热点编程技巧,由于网络播放不支持快进、后退调节,因此对该控件的媒体播放长度获取和播放位置调整在本文将不再阐述。
二、RMOC3260.DLL控件编程热点
Real Networks的网络流式媒体格式使用播放器RealPlayer中的控件RMOC3260.DLL来播放,编程热点如下:
1、设置播放源
通过控件的Source属性设置播放地址,编程方法如下:
rm.Source = "rtsp://61.161.100.140:8080/broadcast/cs.rm" 网管u家u.bitscn@com
2、开始播放
通过控件的DoPlay方法实现播放,编程方法如下: 网管bitscn_com
rm.DoPlay
3、停止播放
通过控件的DoStop方法实现停止,编程方法如下: 网管bitscn_com
rm.DoStop
4、全屏播放
通过控件的SetFullScreen方法实现全屏播放,编程方法如下:
rm.SetFullScreen
5、音量设置
通过控件的SetVolume方法实现音量调节,编程方法如下: 网管bitscn_com
rm.SetVolume (Vol)
注:Vol取值范围0~100。这种方法是改变系统的Wave类型音量。
6、地址的隐蔽
在播放状态下,可通过控件的右键菜单中的选项切换到RealPlayer原播放器中播放,在原播放器中可查看播放地址,如果你对地址需要保密,处理的方法与WMP.DLL控件相同,但这样还不能彻底到达地址保密的目的,原因在于全屏播放模式的差异:两种控件在全屏播放模式中都有自己的右键菜单,而且无法屏蔽,但WMP.DLL的全屏右键菜单无地址查看项目,而RMOC3260.DLL控件的全屏右键菜单仍然可以切换到原播放器,并且当RMOC3260.DLL控件在无法连接到地址源的时候将自动显示地址源信息,这为保密带来了极大的困难。无论是在原播放器中播放,还是在弹出地址源信息对话框时,它们都有一个共同的特点:就是窗口的名称都为RealPlayer,于是我们可以通过API函数来关闭这类窗口,从而到达无法让用户知道播放地址的目的,处理这个问题我们用FindWindow这个API函数实时监测是否有名称为“RealPlayer”的窗口出现,一旦出现就用PostMessage这个API函数将其关闭。实时监测工作在定时器中进行,编程方法和代码如下: 网管联盟bitsCN_com
'API函数声明,略
Const WM_CLOSE = &H10
Private Sub Timer1_Timer()
Dim hW As Long
hW = FindWindow(vbNullString, "RealPlayer")
If hW <> 0 Then PostMessage hW, WM_CLOSE, 0&, 0&
End Sub
7、视频窗口的调整
通过设置控件的Width和Height属性可改变图像大小,编程方法和代码如下: 网管联盟bitsCN@com
rm.Width = Picture1.Width
rm.Height = Picture1.Height * vZooms
rm.Left = (Picture1.Width - rm.Width) \ 2
rm.Top = (Picture1.Height - rm.Height) \ 2
注:vZooms是缩放比例,以Picture1为参照物。该控件在图像缩放时横纵比例不会保持一致,因此本文调节高度,以便对宽屏视频模式进行手动调节,但该控件的全屏模式会自动调节横纵比例。
【编程实现】
一、添加控件
启动VB,新建立一工程,通过“工程\部件”菜单项,勾选“Real Player ActiveX Control Library”和“Windows Media Player”两项,如图1所示。确定返回,将控件添加到工具箱,并放置到窗体。 网管u家u.bitscn@com
网管联盟bitsCN@com
图1 添加流媒体控件 网管u家u.bitscn@com
二、编写代码
1、初始化地址
向工程添加一个窗体From2,向Form2中添加三个列表框List1(存放频道名称)、List2(存放媒体类型及播放地址)、List3(频道排序,Sorted属性为Ture)。编程方法和代码如下: 网管网www.bitscn.com
Const pDn = 1000
Dim pd(1 To pDn) As String
Private Sub Form_Load()
pd(1) = "CCTV1-综合频道,1,rtsp://61.139.60.236/tv2-22"
pd(2) = "南京十八频道,2,rtsp://live.njbg.com.cn:554/broadcast/18.rm"
pd(3) = "上海魅力广电台,1,http://www.stv.sh.cn/103.asx"
pd(4) = "四川岷江音乐台,1,mms://218.6.174.207/FM955"
'注:频道信息结构为:“名称,类型,地址”,名称和类型之间、类型和地址之间用半角逗号分开,类型为1表示用WMP控件播放,类型为2表示用RM控件播放。
…… '其它频道信息略
List1.Clear: List2.Clear
'分离名称和类型、地址
For k = 0 To List3.ListCount - 1
p = InStr(1, List3.List(k), ",") 中国网管论坛bbs.bitsCN.com
If p > 0 Then
'截取类型及地址
T = Trim(Mid(List3.List(k), p + 1))
'检测是否有网络地址
If InStr(1, T, "://") > 0 Then
'添加名称
List1.AddItem Trim(Mid(List3.List(k), 1, p - 1))
2、选择频道
当选择List1中的频道后,通过List2中的类型及地址开始播放,编程方法和代码如下:
网管bitscn_com
'频道名称
tName = List1.List(List1.ListIndex)
'频道地址
tURL = Mid(List2.List(List1.ListIndex), 3)
'播放类型
mType = Val(Left(List2.List(List1.ListIndex), 1))
If mType = 1 Then 'WMP格式
Form1.wmp.URL = tURL
Form1.wmp.Controls.play
ElseIf mType = 2 Then 'RM格式
Form1.rm.Source = tURL
Form1.rm.DoPlay
End If
【编程后记】
QuickTime Movie的QT格式本文尚未做编程示范,通过上面分析,可以看出,做一个网络视频播放器并不难,只要有相应的控件并掌握其中的方法、属性等,就非常轻松了,但本文在对地址保密问题的处理上,给出了典范,特别是对RM控件无法连接地址源时出现提示的处理,很多朋友在论坛上提出了这个问题,希望能通过对控件本身的控制来避免提示对话框的出现,这个想法好像难以直接实现,但本文通过其它途径完美实现,而且编程难度极小,所谓殊途同归。 中国网管联盟bitsCN.com
本文设计的播放器也能支持网络音频的播放,同时支持本地媒体的播放。对于本地播放,程序中调用对话框一次打开多个媒体文件,是值得学习和参考的,同时本地播放设计获取媒体长度及媒体当前位置,以便实现快进、后退等播放控制功能,限于篇幅,详细代码参见源码(http://family1.chinaok.com/down/2006 28/mcode.rar)。程序运行结果如图2所示,调试环境:Win2k+Vb6。
图2:程序效果图 网管网www_bitscn_com
(注:文中内容仅供学术交流,各地的流媒体地址不相同,所以程序中的播放器提供的频道,不保证有效)
网管联盟bitsCN_com
|
0
|
评论加载中…