Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

138
Views
MediaSource nunca emite un evento sourceopen en React

Estoy tratando de transmitir un archivo de video usando la API MediaSource de Javascript en un enlace personalizado de React.

Aquí está el fragmento de mi código:

 const useMyHook = (videoRef: React.MutableRefObject<HTMLVideoElement | null>) => { ... useEffect(() => { const mediaSource = new MediaSource(); videoRef.current!.src = URL.createObjectURL(mediaSource); mediaSource.addEventListener('sourceopen', () => { // this never happens }); }, []); ... }
 const MyComponent = () => { const videoRef = useRef<HTMLVideoElement | null>(null); const {} = useMyHook(videoRef); return ( <> <video ref={videoRef} controls />; </> ); };

Parece que mediaSource nunca emite el evento 'sourceopen' .

Qué más, cuando intento usar este código en diferentes proyectos con html simple y javascript, funciona bien.

Estaba tratando de usar document.getElementByTagName en lugar de useRef o usar esto directamente en mi componente, pero con el mismo resultado.

¿Alguien puede decirme cuál es el problema? ¿Hay algún problema con React o algo así?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Cree una instancia y mantenga el estado de MediaSource en todo el alcance del componente:

 import React, { useState, useEffect, useRef } from 'react' const MyComponent = () => { const [mediaSource] = useState(new MediaSource()) const videoRef = useRef<HTMLVideoElement | null>(null) // component init useEffect(() => { mediaSource.addEventListener('sourceopen', ...) }, []) // videoRef changes useEffect(() => { videoRef?.current!.src = URL.createObjectURL(mediaSource) }, [videoRef]) };
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!