VB FLV控件:实现视频播放与属性控制
本文档主要介绍了如何在Visual Basic (VB)环境中使用FLV控件创建一个功能丰富的FLV视频播放器。首先,让我们从标题“VB FLV控件 FLV视频播放器”中了解到,这是一个针对VB开发者的教程,涉及了如何集成Adobe Flash Player的FLV(流式视频)技术到VB用户控件中。 1. **变量定义**: - `Option Explicit` 是一种编程规范,用于强制开发者声明所有变量,防止未声明的变量被意外使用。 - `Dim Flash As Object` 定义了一个名为Flash的对象变量,用于引用Flash Player对象。 - `Dim hOldPWndAsLong` 可能是保存旧有窗口句柄的变量,用于处理窗口位置或大小变化时的管理。 - 定义了一些常量,如`m_Def_Pan`(默认平移)、`m_Def_Volume`(默认音量)、`m_Def_ScaleMode`(默认缩放模式)以及状态标志的变量。 2. **事件处理**: - `Public Event PlayState(ByVal State As Long, ByVal PlayIngAsString)`:这是一个事件处理器,当视频播放状态发生改变时(例如开始、暂停、结束等),会触发这个事件,并提供当前的状态和播放状态的描述。 3. **初始化属性**: - `Private Sub UserControl_InitProperties()` 函数设置初始值,比如平移、音量和缩放模式,这些值可以在用户控件加载后立即设定。 4. **读取和写入属性**: - `Private Sub UserControl_ReadProperties(PropBagAsPropertyBag)` 和 `Private Sub UserControl_WriteProperties(PropBagAsPropertyBag)` 分别用于从`PropertyBag`(VB中的属性包,用于存储控件的属性)中读取和写入用户的自定义设置。这允许用户在程序运行过程中修改播放器参数。 5. **初始化控件**: - `Private Sub UserControl_Initialize()` 这个函数是用户控件的核心部分,通过 `Controls.Add()` 方法将ShockwaveFlash.ShockwaveFlash控件添加到用户控件中,设置其宽度和高度与用户控件相同,确保视频播放区域占据整个控件。 该文档详细介绍了如何在VB环境下通过FLV控件创建视频播放器,包括设置初始化参数、读写用户配置、处理播放状态变更以及集成Flash Player对象。这对于想要在VB项目中实现视频播放功能的开发者来说,是一份实用的参考材料。开发者可以根据这些代码片段,定制符合自己需求的视频播放功能,并根据实际情况调整代码中的常量和事件处理逻辑。
Dim Flash As Object
Dim hOldPWnd As Long
'设置默认的属性值
Const m_Def_Pan = 0
Const m_Def_Volume = 100
Const m_Def_ScaleMode = 0
Dim m_Url As String
Dim m_Volume As Long, m_Pan As Long, m_ScaleMode As Long, RetState As Long
Public Event PlayState(ByVal State As Long, ByVal PlayIng As String)
'为用户控件初始化属性
Private Sub UserControl_InitProperties()
m_Pan = m_Def_Pan
m_Volume = m_Def_Volume
m_ScaleMode = m_Def_ScaleMode
End Sub
'从存贮器中加载属性值
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
m_Pan = PropBag.ReadProperty("Pan", m_Def_Pan)
m_Volume = PropBag.ReadProperty("Volume", m_Def_Volume)
m_ScaleMode = PropBag.ReadProperty("ScaleMode", m_Def_ScaleMode)
End Sub
'将属性值写到存储器
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("Volume", m_Volume, m_Def_Volume)
Call PropBag.WriteProperty("ScaleMode", m_ScaleMode, m_Def_ScaleMode)
End Sub
'控件初始化
Private Sub UserControl_Initialize()
Set Flash = UserControl.Controls.Add("ShockwaveFlash.ShockwaveFlash", "Flash")
Flash.Width = UserControl.Width
Flash.Height = UserControl.Height
Flash.Visible = True
Flash.object.Movie = "D:\Flv.swf"
Dim lRet As Long, lParam As Long
lRet = EnumChildWindows(UserControl.hwnd, AddressOf EnumChildProc, lParam)
If FHW <> 0 Then
glPrevWndProc = SubClass()
End If
End Sub
Private Sub Form_QueryUnload(Cancel As Long, UnloadMode As Long)
If FHW <> 0 Then UnSubClass
End Sub
'移动控件显示
Private Sub UserControl_Resize()
Flash.Top = 0
Flash.Left = 0
Flash.Width = UserControl.Width
Flash.Height = UserControl.Height
End Sub
剩余7页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 多传感器数据融合手册:国外原版技术指南
- MyEclipse快捷键大全,提升编程效率
- 从零开始的编程学习:Linux汇编语言入门
- EJB3.0实例教程:从入门到精通
- 深入理解jQuery源码:解析与分析
- MMC-1电机控制ASSP芯片用户手册
- HS1101相对湿度传感器技术规格与应用
- Shell基础入门:权限管理与常用命令详解
- 2003年全国大学生电子设计竞赛:电压控制LC振荡器与宽带放大器
- Android手机用户代理(User Agent)详解与示例
- Java代码规范:提升软件质量和团队协作的关键
- 浙江电信移动业务接入与ISAG接口实战指南
- 电子密码锁设计:安全便捷的新型锁具
- NavTech SDAL格式规范1.7版:车辆导航数据标准
- Surfer8中文入门手册:绘制等高线与克服语言障碍
- 排序算法全解析:冒泡、选择、插入、Shell、快速排序