Copy link to clipboard
Copied
Bonjour,
Je suis en train de développer une extension (CEP) pour Premiere Pro (version 25.2.3 sur Windows 11 Home) et je rencontre un problème bloquant : mon extension ne s’affiche pas dans la liste des extensions dans Premiere Pro.
Mon but est de créer une extension nommée Randomizer qui, après avoir mis mes rushs sur la timeline, me permettrait de :
Mélanger de manière aléatoire tous les éléments (clips) présents sur la séquence.
Coller automatiquement tous les clips mélangés contre le bord gauche de la timeline.
En gros, je fais mes cuts, et un simple clic sur le bouton de l'extension déclenche le shuffle complet des éléments présents.
Mon dossier principal s'appelle Randomizer Extension, et il contient 3 sous-dossiers :
Randomizer Extension/
├── client/
│ ├── index.html
│ └── index.js
├── csxs/
│ └── manifest.xml
└── src/
└── main.js
J’ai placé le dossier Randomizer Extension à deux endroits pour tester son chargement :
ici : C:\Program Files (x86)\Common Files\Adobe\CEP\extensions
et ici : C:\Users\Admin\AppData\Roaming\Adobe\CEP\extensions
et pourtant il n'apparait toujours pas sur premiere pro
Dans le dossier standard des extensions CEP
Le problème :
Mon extension n’apparaît pas du tout dans Premiere Pro, malgré la structure respectée et les bons emplacements utilisés. Mon objectif principal à ce stade est simplement qu’elle apparaisse dans la liste des extensions, avec un bouton cliquable qui, plus tard, déclenchera le mélange des clips.
index.html :
Index.js :
manifest.xml :
Mais je veux que Main.jsx fasse ceci :
function randomizeTimelineClips() { $.writeln("Début de randomizeTimelineClips - TEST"); alert("Fonction randomizeTimelineClips appelée !"); try { $.writeln("Vérification de app..."); if (!app) { throw new Error("Erreur : app n'est pas défini."); } $.writeln("Récupération du projet..."); var project = app.project; $.writeln("Projet récupéré : " + (project ? "OK" : "Échec")); $.writeln("Récupération de la séquence active..."); var activeSeq = project.activeSequence; $.writeln("Séquence active : " + (activeSeq ? activeSeq.name : "Aucune")); if (!activeSeq) { $.writeln("Erreur : Aucune séquence active"); alert("Aucune séquence active. Ouvre une séquence !"); return "Échec : Aucune séquence active"; } $.writeln("Récupération des pistes vidéo..."); var videoTracks = activeSeq.videoTracks; $.writeln("Nombre de pistes vidéo : " + videoTracks.numTracks); var selectedClips = []; for (var trackIndex = 0; trackIndex < videoTracks.numTracks; trackIndex++) { var track = videoTracks[trackIndex]; $.writeln("Piste " + trackIndex + " : " + track.clips.numItems + " clips"); if (track.isLocked()) { $.writeln("Piste " + trackIndex + " est verrouillée, ignorez."); continue; } for (var clipIndex = 0; clipIndex < track.clips.numItems; clipIndex++) { var clip = track.clips[clipIndex]; var isSelected = clip.isSelected(); $.writeln("Clip " + clipIndex + " (" + clip.name + ") sélectionné ? " + isSelected); if (isSelected) { selectedClips.push({ clip: clip, trackIndex: trackIndex, originalStart: clip.start.seconds, originalDuration: clip.duration.seconds }); $.writeln("Clip ajouté : " + clip.name); } } } if (selectedClips.length === 0) { $.writeln("Erreur : Aucun clip sélectionné"); alert("Aucun clip sélectionné ! Sélectionne des clips dans la timeline."); return "Échec : Aucun clip sélectionné"; } if (selectedClips.length < 2) { $.writeln("Erreur : Moins de 2 clips sélectionnés"); alert("Sélectionne au moins 2 clips pour mélanger !"); return "Échec : Moins de 2 clips sélectionnés"; } $.writeln("Début du mélange des clips..."); for (var i = selectedClips.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var clipI = selectedClips[i].clip; var clipJ = selectedClips[j].clip; var tempStart = selectedClips[i].originalStart; var tempDuration = selectedClips[i].originalDuration; $.writeln("Échange entre clip " + i + " et clip " + j); clipI.setStart(selectedClips[j].originalStart, true); clipJ.setStart(tempStart, true); clipI.end.seconds = clipI.start.seconds + selectedClips[j].originalDuration; clipJ.end.seconds = clipJ.start.seconds + tempDuration; $.writeln("Clip " + i + " repositionné à " + clipI.start.seconds + "s"); $.writeln("Clip " + j + " repositionné à " + clipJ.start.seconds + "s"); } activeSeq.setPlayerPosition(activeSeq.getPlayerPosition()); $.writeln("Mise à jour de la timeline effectuée"); alert("Clips sélectionnés mélangés avec succès !"); $.writeln("Mélange terminé avec succès"); return "Succès : Clips mélangés"; } catch (error) { $.writeln("Erreur dans randomizeTimelineClips : " + error.toString()); alert("Erreur : " + error.toString()); return "Erreur : " + error.toString(); } }
Have something to add?
Find more inspiration, events, and resources on the new Adobe Community
Explore Now