Bonjour,
j'aurai besoin d'une petite aide pour unscript que j'aimerai utiliser dans le logiciel de montage vegas pro (10 ++).
J'aimerai qu'en lui indiquant le chemin d'acces d'un dossier en local, il parcours de manière récurente tous les sous dossiers pour y trouver les suites d'images qui s'y trouvent pour les importer comme "media" dans le "chutier" de mon projet vegas ouvert.

J'ai trouver comment faire la récurence et récupérer les informations dont j'ai besoin pour importer la suite d'image (le chemin d'acces de la première image, le nombre d'image de la suite et le frame rate une fois la séquence devenue média).

La où je bloque c'est dans l'utilisation de la class permettant d'importer dans le logiciel.

Mon script cs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Mail;
using System.IO;
using System.Diagnostics;
using System.Drawing;
using System.Text;
using Sony.Vegas;
 
public class EntryPoint
{
    Vegas myVegas;
	String dirToScan = "E:\\Script_ImageSequence"; 
	static System.Collections.Specialized.StringCollection log = new System.Collections.Specialized.StringCollection();
	public void FromVegas(Vegas vegas)
    {
 
	System.IO.DirectoryInfo rootDir = new System.IO.DirectoryInfo(dirToScan);
    WalkDirectoryTree(rootDir);
	}
 
	static void WalkDirectoryTree(System.IO.DirectoryInfo root)
    {
        System.IO.FileInfo[] files = null;
        System.IO.DirectoryInfo[] subDirs = null;
 
 
        try
        {
            files = root.GetFiles("*.*");
        }
 
        catch (UnauthorizedAccessException e)
        {
            log.Add(e.Message);
        }
 
        catch (System.IO.DirectoryNotFoundException e)
        {
            Console.WriteLine(e.Message);
        }
 
        if (files != null)
        {
		 int num = 1;
		 String fileName = "";
            foreach (System.IO.FileInfo fi in files)
            {
				if(num == 1)
					{fileName = fi.FullName;}
				num++;
            }
			num--;
 
			if(num > 1 && !String.IsNullOrEmpty(fileName))
				{
				double fps = 25;
				MessageBox.Show("le premier fichier s\'appelle : "+fileName+" et il y a "+num+" fichiers dans le dossier "+root);
				Sony.Vegas.MediaPool.AddImageSequence(fileName,num,fps);
				}
 
            subDirs = root.GetDirectories();
 
            foreach (System.IO.DirectoryInfo dirInfo in subDirs)
            {
                WalkDirectoryTree(dirInfo);
            }
 
		}
			}
}
le logiciel me retourne l'erreur :
\import_image_sequence.cs(61) : Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'Sony.Vegas.MediaPool.AddImageSequence(string, int, double)'
je ne comprends pas bien ce que signifie l'erreur et encore moins ce que je dois modifier.

dans les API de vegas, voici la définition de la classe AddImageSequence :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Media AddImageSequence
(
String path, 
Int32 imageCount, 
Double fps
 
Media
(
String path
)
)
Creates and adds an image sequence to the project media pool.
Parameters:
path: full path of the fisrt image in the sequence
imageCount: number of image files in the sequence
fps: frame rate of the image sequence

Une idée ?