使用电视调谐器捕获

执行以下步骤,使用LEADTOOLS Media Foundation CaptureCt188宝金博怎么下载rl控件创建并运行多媒体电视调谐器捕获应用程序。

  1. 启动Visual Studio。

  2. 选择文件- >- >项目…菜单上的。

  3. 新项目对话框中,选择Visual c#项目或者VB项目在项目类型列表中,并选择“Windows应用程序在模板列表中。

  4. 输入项目名称为“188宝金博怎么下载多媒体电视调谐器捕获“在项目名称字段,然后选择好吧.类型为项目键入新位置或选择目录(如果需要)浏览按钮,然后选择好吧

  5. 在“解决方案资源管理器窗口中,右键单击参考文献"文件夹并选择"添加引用…从上下文菜单。在“添加引用对话框中,选择net选项卡并选择Leadtools。MediaFoundation并点击好吧

  6. 确保Form1在设计视图中。去工具箱(视图->工具箱),然后拖放一个CaptureCtrl控件。注意:如果您没有CaptureCtrl在工具箱中,选择工具->选择工具箱项目菜单上的。点击浏览然后选择Leadtools.MediaFoundation.dll从“< LEADTOOLS_INSTALLDIR > \ Bin \ Dotnet4 \ Win32然后点击开放然后点击好吧.将其添加到表单后,在捕获控件上设置以下属性:

    财产 价值
    名字 _capturectrl
    上,下,左,右
  7. 转到工具箱(视图->工具箱),在窗体(捕获控件下面)上拖放一个ProgressBar控件(用于显示捕获进度),并设置以下属性:

    财产 价值
    名字 _progress
    下,左,右
  8. 转到工具箱(视图->工具箱),并在窗体底部拖放4个按钮控件(用于捕获,通道向上和通道向下),并设置以下属性:

    财产 价值
    名字 _buttonCapture
    文本 捕获
    下,右
    名字 _buttonChannelUp
    文本 向上
    下,右
    名字 _buttonChannelDown
    文本 下来
    下,右
  9. 转到工具箱(视图->工具箱),在窗体左下角拖放一个标签控件、一个文本控件、另一个标签控件和一个ProgressBar控件(用于“Channel:”标签、通道文本框、“Signal:”标签和信号强度计),并设置以下属性:

    财产 价值
    名字 label1
    文本 渠道:
    下,从左
    名字 _textChannel
    下,从左
    锁着的 真正的
    只读的 真正的
    TextAlign 中心
    名字 label2
    文本 信号:
    下,从左
    名字 _signal
    下,从左
  10. 开关Form1编码视图(右键单击Form1在解决方案资源管理器中选择视图代码),并在文件开头添加以下行:

    c#
    使用System.Runtime.InteropServices;使用Leadtools.MediaFoundation;
    VB
    进口System.Runtime.InteropServices进口Leadtools。MediaFoundation

  11. 声明以下私有变量:

    c#
    私人字符串_targetFile;私人int_captureTime;
    VB
    私人_targetFile作为字符串私人_captureTime作为整数

  12. 在Form1 Load事件中添加一个事件处理程序,代码如下:

    c#
    私人无效Form1_Load (对象发送者,EventArgs如果(_capturectrl.VideoDevices。计数== 0)异常(“没有可用的捕获设备”);如果(_capturectrl。VideoDevices [“模拟”) = =异常(“没有模拟电视捕捉设备可用”);_capturectrl。VideoDevices [“模拟”]。选择=真正的_capturectrl。UseVideoDeviceAudio =真正的_capturectrl…TargetFormats。选择ion = TargetFormatType.MP4;_targetFile =@“capture.mp4”_captureTime = 30;_capturectrl。PreviewSource = CapturePreview.Video;_capturectrl。预览=真正的DisplayChannelAndSignal ();
    VB
    私人Form1_Load (按值传递发送方作为对象按值传递e作为EventArgs)处理MyBase.Load如果_capturectrl.VideoDevices。= 0然后异常(“没有可用的捕获设备”结束如果如果_capturectrl。VideoDevices (“模拟”没有什么然后异常(“没有模拟电视捕捉设备可用”结束如果_capturectrl。VideoDevices (“模拟”).选择=真正的_capturectrl…TargetFormats。选择ion = TargetFormatType.MP4_targetFile =“capture.mp4”_captureTime = 30_capturectrl。PreviewSource = CapturePreview。视频_capturectrl。预览=真正的DisplayChannelAndSignal ()结束

  13. 添加如下helper方法:

    c#
    私人无效DisplayChannelAndSignal ()如果(_capturectrl。TVTuner ! =intcurrChannel = _capturectrl.TVTuner.Channel;_textChannel。文本= currChannel.ToString();TunerSignalStrength信号= _capturectrl.TVTuner.SignalPresent;开关(信号)情况下TunerSignalStrength。NoSignal:_signal。值=0;打破情况下TunerSignalStrength。HasNoSignalStrength:_signal。值=10;打破情况下TunerSignalStrength。SignalPresent:_signal。值=100;打破私人无效ChangeChannel (保龄球)intchanMin = _capturectrl.TVTuner.ChannelMin;intchanMax = _capturectrl.TVTuner.ChannelMax;intcurrChannel = _capturectrl.TVTuner.Channel;intcurrVideoChannel = _capturectrl.TVTuner.VideoSubChannel;如果(了)如果(currChannel == chanMax)currChannel = chanMin;其他的currChannel + +;其他的如果(currChannel == chanMin)currChannel = chanMax;其他的currChannel——;_capturectrl.TVTuner。SetChannel(currChannel, -1, -1);DisplayChannelAndSignal ();
    VB
    私人DisplayChannelAndSignal ()如果_capturectrl。TVTuner没有什么然后昏暗的currChannel作为整数= _capturectrl.TVTuner.Channel_textChannel。文本= currChannel.ToString()昏暗的信号作为TunerSignalStrength = _capturectrl.TVTuner.SignalPresent选择情况下信号情况下TunerSignalStrength。NoSignal_signal。值=0情况下TunerSignalStrength。HasNoSignalStrength_signal。值=10情况下TunerSignalStrength。SignalPresent_signal。值=100结束选择结束如果结束私人ChangeChannel (按值传递向上作为布尔昏暗的chanMin作为整数= _capturectrl.TVTuner.ChannelMin昏暗的chanMax作为整数= _capturectrl.TVTuner.ChannelMax昏暗的currChannel作为整数= _capturectrl.TVTuner.Channel昏暗的currVideoChannel作为整数= _capturectrl.TVTuner.VideoSubChannel如果向上然后如果currChannel = chanMax然后currChannel = chanMin其他的currChannel += 1结束如果其他的如果currChannel = chanMin然后currChannel = chanMax其他的currChannel -= 1结束如果结束如果_capturectrl.TVTuner。SetChannel(currChannel, -1, -1)DisplayChannelAndSignal ()结束

  14. 向_capturectrl Progress事件添加一个事件处理程序,并将其编码如下:

    c#
    私人无效_capturectrl_Progress (对象发送者,progressevenargs e)_progress。值= (int) ((_progress。Maximum * e.time) / (_captureTime * 1000));
    VB
    私人_capturectrl_Progress (按值传递发送方作为系统。对象,按值传递e作为ProgressEventArgs)处理_capturectrl。进步_progress。值=CInt((_progress。Maximum * e.time) / (_captureTime * 1000)结束

  15. 在_capturectrl Complete事件中添加一个事件处理程序,并按照如下代码编写它:

    c#
    私人无效_capturectrl_Complete (对象发送者,EventArgs对话框。显示(“捕获完整”);_buttonCapture。启用了=真正的
    VB
    私人_capturectrl_Complete (按值传递发送方作为系统。对象,按值传递e作为EventArgs)处理_capturectrl。完整的对话框。显示(“捕获完整”_buttonCapture。启用了=真正的结束

  16. 在_buttonChannelUp Click事件中添加一个事件处理程序,并将其编码如下:

    c#
    私人无效_buttonChannelUp_Click (对象发送者,EventArgs如果(_capturectrl。TVTuner ! =ChangeChannel (真正的);
    VB
    私人_buttonChannelUp_Click (按值传递发送方作为对象按值传递e作为EventArgs)处理_buttonChannelUp。点击如果_capturectrl。TVTuner没有什么然后ChangeChannel (真正的结束如果结束

  17. 添加一个事件处理程序到_buttonChannelDown单击事件,并将其编码如下:

    c#
    私人无效_buttonChannelDown_Click (对象发送者,EventArgs如果(_capturectrl。TVTuner ! =ChangeChannel ();
    VB
    私人_buttonChannelDown_Click (按值传递发送方作为对象按值传递e作为EventArgs)处理_buttonChannelDown。点击如果_capturectrl。TVTuner没有什么然后ChangeChannel (结束如果结束

  18. 向_buttonCapture Click事件添加一个事件处理程序,并按照如下代码编写它:

    c#
    私人无效_buttonCapture_Click (对象发送者,系统。EventArgs e)试一试_capturectrl。预览=真正的_capturectrl。目标文件= _targetFile;_capturectrl。UseTimeLimit =真正的_capturectrl。TimeLimit = _captureTime;_capturectrl.StartCapture (CaptureMode.Video);_buttonCapture。启用了=(异常交货)MessageBox.Show (ex.Message);
    VB
    私人_buttonCapture_Click (按值传递发送方作为系统。对象,按值传递e作为System.EventArgs)处理_buttonCapture。点击试一试_capturectrl。预览=真正的_capturectrl。TargetFile = _targetFile_capturectrl。UseTimeLimit =真正的_capturectrl。TimeLimit = _captureTime_capturectrl.StartCapture (CaptureMode.Video)_buttonCapture。启用了=前女友作为异常MessageBox.Show (ex.Message)结束试一试结束

  19. 构建并运行程序以测试它。

LEADTOOLS多188宝金博怎么下载媒体
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。