Subir vídeo en el elemento imagen
Puedes simplemente añadirlo al vídeo usando el gestor de activos... 'this.editor.on('component:create', model => { si (model.get('type') === 'vídeo') { this.editor.runCommand('open-assets', { Objetivo: Modelo }); } });`
Lee la respuesta completa abajo ↓Pregunta
Hola. Estaba intentando implementar la subida de vídeos usando el elemento Image con el gestor de assets, pero me detuve en el paso en el que quería reemplazar la etiqueta img por una etiqueta de vídeo en la llamada de vuelta UpdateTarget, pregunto si hay alguna forma sencilla de implementarlo. Gracias de antemano. Aquí tienes un fragmento de mi código '''js activos var = [];
var editor = grapesjs.init({ Altura: '100%', Offsets: 1, avisoOnUnload: 0, componentes: '', Estilo: '', Contenedor: '#gjs', fromElement: cierto,
Plugins: ['GJS-preset-webpage'], pluginsOpts: { 'gjs-preset-webpage': {} }, assetManager: { activos: activos, noAssets: '', subir: '/propietario/website_front/medio/asset_upload', uploadName:'Media', cabeceras: {}, autoAdd: 1, addBtnText: 'Añadir imagen', Texto al subir la entrada uploadText: 'Deja archivos aquí o haz clic para subir',
modalTítulo: 'Seleccionar imagen',
params: {}, },
storageManager: { Tipo: 'A distancia', pasos Antes de guardar: 1, urlStore: '', urlLoad: '', params: {}, // Para valores personalizados en peticiones } });
Consigue primero el módulo de Asset Manager const am = editor. Gestor de Activos; am.addType('video', { Vista: { updateTarget(target) { const src = this.model.get('src'); Solo para hacerlo un poco interesante, si es un tipo de imagen Puse el SVG como un uri de datos, contenido por lo demás if (target.get('type') == 'imagen') { Consejo: también puedes usar 'data:image/svg+xml;utf8,<svg ...' pero tú Tengo que escapar de unos pocos personajes
target.set('src', 'data:mime/type; base64,${BTOA(SVG)}'); } else { target.set('content', SVG); } },
getPreview() { const src = this.model.get('src'); volver '<div> <clase de vídeo="gjs-no-pointer" style="altura: 100%; ancho: 100%;" src="${src}"> </video>';</div> }, getInfo() { devolver '<div>'+ this.model.get('src') +'</div>'; } }, isType(value) { Por ejemplo, Aquí puedes comprobar/analizar/buscar URL e intentar Entiende el tipo
if (tipode de valor == 'cadena' ) { value_parts = valor.dividido('.'); ext = value_parts[value_parts.length - 1]; if(ext == 'mp4'){ console.log('4444'); return { type: 'video', src: value }; } } } }); am.add({type:'video',src:'https://oidev.daftra.dev/files/db4715bd/medias/d9717_SampleVideo_1280x720_1mb.mp4'});
am.render(am.getAll().filter(asset => asset.get('type') == 'video' ));```
Respuestas (3)
Puedes simplemente añadirlo al vídeo usando el gestor de activos...
'this.editor.on('component:create', model => {
si (model.get('type') === 'vídeo') {
this.editor.runCommand('open-assets', {
Objetivo: Modelo
});
}
});`Puedes actualizar el nombre de la etiqueta del componente de esta manera: 'model.set('tagName', 'new-tag')'
@ecmascriptguru preferiría sugerir ampliar el componente de vídeo e implementar el modal (como en ComponentImageView)
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #2099
Cambio de activo mediante comando
Hola a todos, Me gustaría emular el comportamiento de reemplazo de imagen del gestor de assets. por ejemplo, creé una vista lateral con tod...
Issue #3374
Las imágenes y vídeos no están enfocados
Hola, tengo un problema que es que al añadir un vídeo o una imagen al lienzo, no está centrado, sino hacia la izquierda. Con la ayuda del p...
Issue #2917
BUG: Style Manage no oculta los bloques de estilo
Hola @artf, estoy intentando ocultar propiedades de estilo basándome en el elemento seleccionado. por ejemplo, cuando arrastro y suelto una...
Issue #2504
¿Cómo ampliar el tipo de recurso de imagen para añadir atributos personalizados?
Hola, Estoy intentando hacer una modificación sencilla al recurso de imagen por defecto y me estoy topando con un muro, y seguro que me est...
Plugins de pago que cumplen con este problema
Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.
Cargando recomendaciones de plugins de pago...
Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.
Explora plugins gratuitos →Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.
Explora plugins premium →Tutoriales relacionados
Guías detalladas sobre el mismo tema.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.