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 :
le logiciel me retourne l'erreur :
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); } } } }je ne comprends pas bien ce que signifie l'erreur et encore moins ce que je dois modifier.\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)'
dans les API de vegas, voici la définition de la classe AddImageSequence :
Creates and adds an image sequence to the project media pool.
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 ) )
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 ?
Partager