zoukankan      html  css  js  c++  java
  • 2. 用DSPack播放视频

    安装完后,开始学习DSPack。
    首先,要阅读一下(DSPackDir)\help目录下的help.chm文件,粗略地看了一下,内容太多看不出头绪。
    还是先学习一下(DSPackDir)\Demos\D6-D7目录下的那些例子,边动手做边学习吧。

    研究的第一个例子是PlayWin。研究了一下,主要使用TFilterGraph和TVideoWindow来完成。
    TFilterGraph是DSPack中的核心类,其他类都要围绕着它,但是怎么理解它还不清楚。TVideoWindow是个显示播放视频的控件。这两个类的关系好像是数据库控件中Dataset控件和DBGrid控件的关系一样。

    看得差不多后,自己照葫芦画瓢仿制一个。

    1. 新建一个应用,在界面上先放4、5个按钮。
    2. 在控件面板上选择DSPack那页,把前两个控件(TFilterGraph和TVideoWindow)在窗口上各放一个。
    3. 关联
       选中VideoWindow1控件,在属性窗口中将FilterGraph属性设置为FilterGraph1。
       选中FilterGraph1控件,确认属性窗口中的Mode属性为gmNormal。

    4.为Form1增加一个onCreate事件处理程序。
    内容为:
        if not FilterGraph1.Active then FilterGraph1.Active := true;
        FilterGraph1.ClearGraph;
        FilterGraph1.RenderFile('E:\v\951.wmv'); // 简化一点,这里用你本地硬盘上的一个视频文件

    5. 为Form1增加一个onCloseQuery事件处理程序。
    内容为:
        FilterGraph1.Active := false ;

    6.把button1的Caption改为Start,并增加一个OnClick事件
    内容为:
        FilterGraph1.Play;

    运行一下,就可以播放了。下面再增加几个功能按钮,如pause、stop。

    7. 把button2的Caption改为Pause,并增加一个OnClick事件
    内容为:
       FilterGraph1.Pause;


    8. 把button3的Caption改为Stop,并增加一个OnClick事件
    内容为:
        FilterGraph1.stop;

    可以看出4-8步都是调用了TFilterGraph类的方法。

    下面,再增加个全屏功能吧。
    9. 把button4的Caption改为FullScreen,并增加一个OnClick事件
    内容为:
        VideoWindow1.FullScreen :=true ;
       
    10. 为VideoWindow1增加一个OnClick事件
    内容为:
    if videowindow1.FullScreen then
        videowindow1.FullScreen := false ; //退出全屏方式

    一般的视频播放创窗口都有一个进度条,现在我们也来加一个。
    A.1. 在DSPack控件面板上选择倒数第2个控件(TDSTrackBar),放到在窗口上。
    A.2. 关联
       选中DSTrackBar1控件,在属性窗口中将FilterGraph属性设置为FilterGraph1。(这一步好像很熟悉哦)

    重新运行程序,你就会看到一个进度条,并且能够使用这一进度条来调整播放的进度。

  • 相关阅读:
    【leetcode】1020. Partition Array Into Three Parts With Equal Sum
    【leetcode】572. Subtree of Another Tree
    【leetcode】123. Best Time to Buy and Sell Stock III
    【leetcode】309. Best Time to Buy and Sell Stock with Cooldown
    【leetcode】714. Best Time to Buy and Sell Stock with Transaction Fee
    【leetcode】467. Unique Substrings in Wraparound String
    【leetcode】823. Binary Trees With Factors
    【leetcode】143. Reorder List
    【leetcode】1014. Capacity To Ship Packages Within D Days
    【leetcode】1013. Pairs of Songs With Total Durations Divisible by 60
  • 原文地址:https://www.cnblogs.com/zhusd/p/1760132.html
Copyright © 2011-2022 走看看