2009-12-19 3 views

Répondre

2

La partie vidéo est en fait assez facile. Tout ce que vous devez avoir est une minuterie qui s'exécute 20 fois par seconde qui sauvegardera le canvas du formulaire dans un fichier image en tant que frames. Ensuite, créez une animation sur ces images.

Pour capturer l'image:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
     tVideo.Start(); 
    } 

    int i = 0; 

    private void tVideo_Tick(object sender, EventArgs e) 
    { 
     String lFile = String.Format("c:\\{0}.bmp", i); 
     SaveAsBitmap(this, lFile); 

     i++; 
    } 

    public void SaveAsBitmap(Control aCtrl, string aFileName) 
    { 
     if (File.Exists(aFileName)) 
      File.Delete(aFileName); 

     Graphics lGraphics = aCtrl.CreateGraphics(); 

     Bitmap lImage = new Bitmap(aCtrl.Width, aCtrl.Height); 

     aCtrl.DrawToBitmap(lImage, new Rectangle(0, 0, aCtrl.Width, aCtrl.Height)); 

     lImage.Save(aFileName); 
     lImage.Dispose(); 
    } 
} 

Ceci est juste un échantillon de lumière, de vous bien sûr avoir à ajouter une compression et d'essayer d'éviter d'enregistrer la même image deux fois. Sachant combien d'images sont les mêmes + sachant sur le framerate, vous savez combien de temps pour afficher le même cadre.

Pour ajouter un curseur, vous devez conserver certaines variables avec la souris x, y et un événement avec un clic de souris. Et puis ajoutez-le aux images.

Bien sûr, cela ne fonctionnera pas pour les jeux 3D en dépit de l'overlay qui est dessiné après la peinture win32.

Pour cela, vous devriez aller avec DirectX/OpenGl/XNA. Je pense que l'idée est la même. Pour l'audio, DirectX aussi.

Ma source complète: http://deathsquad.pl/archiwum/Inne/so/answer-1934452.rar

Certains échantillons audio DirectX: http://www.codeproject.com/KB/directx/audiosav.aspx

1

Check out Gallio: Il est un cadre grand test, et il a construit dans l'API d'enregistrement d'écran.

Ce message montre quelques exemples: http://blog.bits-in-motion.com/2009/09/announcing-gallio-and-mbunit-v31.html

+0

Pouvez-vous me dire quelle API contient les capacités d'enregistrement? Je ne peux pas trouver le fichier dll exacte. –

+0

Je l'ai testé. il ne supporte pas l'enregistrement audio sur écran. –

Questions connexes