当前位置:编程学习 > C#/ASP.NET >>

DirectX里的Video和Audio C#的哦

最简单要求,就是对音频文件和视频文件可以定位查找,本来它的Video和Audio类都提供了Seek方法,但它们根本不能工作,每次Seek后,都回到0的位置上。后来用Reflector来看它的源代码,结果也是不尽人意,很多底层的代码没有办法反射出来。特别是DX里的一些接口,根本无法查看。最后也只好先暂停了。
本来还想着,要是DX在.Net下封装的比较好的话,我就可以少用C++的COM组件了,直接用C#来写组件也方便多了。没想到MS的托管DX确实还不够完善,我看可能要等以后的版本了。不过它的MediaPlay的SDK还是不错的,有机会也看看。
[csharp]
using System; 
using System.Drawing; 
using System.Collections; 
using System.ComponentModel; 
using System.Windows.Forms; 
using Microsoft.DirectX; 
using Microsoft.DirectX.AudioVideoPlayback; 
 
namespace Webb.DirectX.Debug2 

    /**//// <summary> 
    /// Summary description for Form1. 
    /// </summary> 
    public class AVPlayer : System.Windows.Forms.Form 
    { 
 
        private string filterText = "Video Files (*.avi; *.qt; *.mov; *.mpg; *.mpeg; *.m1v; *.wmv)|*.avi; *.qt; *.mov; *.mpg; *.mpeg; *.m1v; *.wmv|" + 
            "Audio files (*.wav; *.mpa; *.mp2; *.mp3; *.au; *.aif; *.aiff; *.snd; *.wma)|*.wav; *.mpa; *.mp2; *.mp3; *.au; *.aif; *.aiff; *.snd; *.wma|" + 
            "MIDI Files (*.mid, *.midi, *.rmi)|*.mid; *.midi; *.rmi|" + 
            "Image Files (*.jpg, *.bmp, *.gif, *.tga)|*.jpg; *.bmp; *.gif; *.tga|" + 
            "All Files (*.*)|*.*"; 
 
        private Video ourVideo = null; 
        private Audio ourAudio = null; 
 
        Winforms variables#region Winforms variables 
 
        /**//// <summary> 
        /// Required designer variable. 
        /// </summary> 
        private System.ComponentModel.Container components = null; 
        private System.Windows.Forms.MainMenu mnuMain; 
        private System.Windows.Forms.OpenFileDialog ofdOpen; 
        private System.Windows.Forms.MenuItem menuItem3; 
        private System.Windows.Forms.MenuItem mnuFile; 
        private System.Windows.Forms.MenuItem mnuOpen; 
        private System.Windows.Forms.MenuItem menuItem1; 
        private System.Windows.Forms.MenuItem mnuPlay; 
        private System.Windows.Forms.MenuItem mnuStop; 
        private System.Windows.Forms.MenuItem mnuPause; 
        private System.Windows.Forms.MenuItem menuItem2; 
        private System.Windows.Forms.MenuItem mnuFull; 
        private System.Windows.Forms.ToolBar toolBar1; 
        private System.Windows.Forms.ToolBarButton toolBarButton1; 
        private System.Windows.Forms.ToolBarButton toolBarButton2; 
        private System.Windows.Forms.ToolBarButton toolBarButton3; 
        private System.Windows.Forms.ToolBarButton toolBarButton4; 
        private System.Windows.Forms.ToolBarButton toolBarButton5; 
        private System.Windows.Forms.MenuItem mnuExit; 
        #endregion 
 
        public AVPlayer() 
        { 
            // 
            // Required for Windows Form Designer support 
            // 
            InitializeComponent(); 
 
            OpenFile(); 
        } 
 
        private bool _IsVideo = false; 
 
        /**//// <summary> 
        /// Clean up any resources being used. 
        /// </summary> 
        protected override void Dispose( bool disposing ) 
        { 
            CleanupObjects(); 
            if( disposing ) 
            { 
                if (components != null)  
                { 
                    components.Dispose(); 
                } 
            } 
            base.Dispose( disposing ); 
        } 
 
        Windows Form Designer generated code#region Windows Form Designer generated code 
        /**//// <summary> 
        /// Required method for Designer support - do not modify 
        /// the contents of this method with the code editor. 
        /// </summary> 
        private void InitializeComponent() 
        { 
            this.mnuMain = new System.Windows.Forms.MainMenu(); 
            this.mnuFile = new System.Windows.Forms.MenuItem(); 
            this.mnuOpen = new System.Windows.Forms.MenuItem(); 
       &nb
补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,