es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No puedo hacer que la altura de una película MP4 cambie y se ajuste a la Caja de Material tanto en horizontal como en vertical.

Aprendo JavaScript React y ahora tengo un problema con la posicionamiento de una película MP4. Revisa el archivo FileContentRenderer.jsx donde se utiliza el video html5 con MP4. Quiero que se ajuste al material Box en retrato con, digamos, height: ’20vw’ y en paisaje, pero lo que intento no funciona. Debo haber perdido algo fundamental, por favor aconsejenme. Como se muestra en la imagen, aquí la película debe ser solo una cuarta parte de la altura y no tan alta. No importa qué película intente, la altura no se reduce, por favor aconsejenme. Tengo este material withStyles que no está funcionando bien haciendo que el MP4 luzca bien. No importa qué película intente, la película se niega a encajar en el Box.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema podría estar en la relación de aspecto del video, que no es compatible con el tamaño del contenedor. Puede intentar agregar object-fit: cover a la clase viewerMp4 para hacer que el video cubra el contenedor manteniendo la relación de aspecto. Además, es posible que deba ajustar el ancho del componente Box para que coincida con la relación de aspecto del video.

    Aquí hay una versión actualizada del objeto styles que puede probar:

    const styles = theme => ({
      viewerWrapperMp4: {
        background: 'black',
        width: '100%',
        height: '20vw',
        textAlign: 'center',
      },
      viewerMp4: {
        width: 'auto',
        height: '100%',
        objectFit: 'cover', // agregado
      },
      outer: {
        height: '100%',
        width: '100%',
        position: 'relative',
        overflow: 'hidden',
      },
    });
    

    Si desea que el video tenga siempre una cuarta parte de la altura del contenedor, puede intentar establecer la altura de Box en 80vw (es decir, 4 veces la altura de 20vw) y ajustar la altura de viewerWrapperMp4 a 25%.

    const styles = theme => ({
      viewerWrapperMp4: {
        background: 'black',
        width: '100%',
        height: '25%', // actualizado
        textAlign: 'center',
      },
      viewerMp4: {
        width: 'auto',
        height: '100%',
        objectFit: 'cover',
      },
      outer: {
        height: '100%',
        width: '100%',
        position: 'relative',
        overflow: 'hidden',
      },
    });
    
    <box height="80vw" display="flex" alignitems="center" justifycontent="center">
      <div classname="{classes.outer}">
        <div classname="{classes.viewerWrapperMp4}">
          <video classname="{classes.viewerMp4}" src="{file.url}" controls=""></video>
        </div>
      </div>
    </box>
    

Comments are closed.