
Recherche avancée
Médias (2)
-
Exemple de boutons d’action pour une collection collaborative
27 février 2013, par
Mis à jour : Mars 2013
Langue : français
Type : Image
-
Exemple de boutons d’action pour une collection personnelle
27 février 2013, par
Mis à jour : Février 2013
Langue : English
Type : Image
Autres articles (80)
-
Gestion de la ferme
2 mars 2010, parLa ferme est gérée dans son ensemble par des "super admins".
Certains réglages peuvent être fais afin de réguler les besoins des différents canaux.
Dans un premier temps il utilise le plugin "Gestion de mutualisation" -
Demande de création d’un canal
12 mars 2010, parEn fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...) -
Creating farms of unique websites
13 avril 2011, parMediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)
Sur d’autres sites (14117)
-
Uncaught ReferenceError : CCapture is not defined ?
13 octobre 2024, par The Dead ManI have a simple app to create a canvas and render it. I am using capture js and FFmpeg module for converting videos in my app, but when I run the app I get the following reference error :



Uncaught ReferenceError: CCapture is not defined
 at test.js:67`




Here is test.js :



(function() {
 "use strict";

 var framesPerSecond = 60;
 var numFrames = 20; //framesPerSecond * 60 * 2;
 var thickness = 100;
 var speed = 4;
 var frameNum = 0;

 var canvas = document.getElementById("c");
 var ctx = canvas.getContext("2d");
 canvas.width = 1280;
 canvas.height = 720;

 var progressElem = document.getElementById("progress");
 var progressNode = document.createTextNode("");
 progressElem.appendChild(progressNode);

 function onProgress(progress) {
 progressNode.nodeValue = (progress * 100).toFixed(1) + "%";
 }

 function showVideoLink(url, size) {
 size = size ? (" [size: " + (size / 1024 / 1024).toFixed(1) + "meg]") : " [unknown size]";
 var a = document.createElement("a");
 a.href = url;
 var filename = url;
 var slashNdx = filename.lastIndexOf("/");
 if (slashNdx >= 0) {
 filename = filename.substr(slashNdx + 1);
 }
 a.download = filename;
 a.appendChild(document.createTextNode(url + size));
 document.body.appendChild(a);
 }

 var capturer = new CCapture( {
 format: 'ffmpegserver',
 //workersPath: "3rdparty/",
 //format: 'gif',
 verbose: false,
 framerate: framesPerSecond,
 onProgress: onProgress,
 //extension: ".mp4",
 //codec: "libx264",
 } );
 capturer.start();

 function drawLines(ctx) {
 for (var xx = -canvas.width; xx < canvas.width; xx += 2) {
 var l = (xx - (-canvas.width)) / (canvas.width * 2);
 ctx.beginPath();
 ctx.moveTo(xx, -canvas.height);
 ctx.lineTo(xx, canvas.height);
 ctx.strokeStyle = "hsla(" + ((l * 360 * 24) % 360) + ",100%,50%,0.5)";
 ctx.stroke();
 }
 }

 function render(time) {
 ctx.fillStyle = "#000";
 ctx.fillRect(0, 0, canvas.width, canvas.height);

 ctx.fillStyle = "#FFF";
 for (var xx = 0; xx < canvas.width + thickness * 2; xx += thickness * 2) {
 var x = xx - (frameNum * speed % (thickness * 2));
 ctx.fillRect(x, 0, thickness, canvas.height);
 }

 ctx.save();
 ctx.globalCompositeOperation = "difference";

 ctx.font = "400px sans-serif";
 ctx.textAlign = "center";
 ctx.textBaseline = "middle";
 ctx.fillText(frameNum, canvas.width / 2, canvas.height / 2);


 ctx.save();
 ctx.translate(canvas.width * 0.5, canvas.height * 0.5);
 ctx.rotate(frameNum * 0.01);
 ctx.translate(canvas.width * 0.25, 0);
 drawLines(ctx);
 ctx.restore();

 ctx.save();
 ctx.translate(canvas.width * 0.5, canvas.height * 0.5);
 ctx.rotate(frameNum * -0.013);
 ctx.translate(canvas.width * 0.37, 0);
 drawLines(ctx);
 ctx.restore();

 ctx.restore();

 capturer.capture(canvas);

 ++frameNum;
 if (frameNum === numFrames) {
 capturer.stop();
 capturer.save(showVideoLink);
 } else {
 requestAnimationFrame(render);
 }
 }
 requestAnimationFrame(render);
}());



-
Revision 15797 : Améliorer le comptage des liens entrants dans les stats (merci Daniel ...
20 juin 2010, par da@… — LogAméliorer le comptage des liens entrants dans les stats (merci Daniel Déchelotte) Explication de l’auteur du correctif : Le test ($n == $limit) compare le nombre maximal de visites renvoyées à un nombre de hosts après agrégation, donc s’évalue presque toujours à faux. Je propose de toujours afficher le (...)
-
Revision 3e9cbd13236c73cb3cb79e433dc5b314edb3d4ec : Améliorer le comptage des liens entrants dans les stats (merci Daniel ...
20 juin 2010, par davux — LogAméliorer le comptage des liens entrants dans les stats (merci Daniel Déchelotte) Explication de l’auteur du correctif : Le test ($n == $limit) compare le nombre maximal de visites renvoyées à un nombre de hosts après agrégation, donc s’évalue presque toujours à faux. Je propose de toujours afficher le (...)