reproduzca reproducir que poner para notas insertar etiqueta como codigo bloc html5 servlets audio video media-player

html5 - reproducir - Cómo transmitir archivos de audio/video como MP3, MP4, AVI, etc. usando un Servlet



insertar audio mp3 en html (1)

Muchos reproductores multimedia requieren que el servidor admita las llamadas solicitudes de rango HTTP. Es decir, debe poder devolver partes específicas del archivo multimedia a petición con un encabezado de Range . Por ejemplo, solo los bytes exactamente en el índice 1000 hasta 2000 en un archivo de 10 MB de longitud. Esto es obligatorio para muchos reproductores de medios para poder omitir un cierto rango de la secuencia de medios lo suficientemente rápido y / o para mejorar la velocidad de almacenamiento en búfer mediante la creación de múltiples conexiones, cada una de las cuales solicita diferentes partes del archivo.

Sin embargo, esto es una gran cantidad de código adicional en su servlet que requiere una buena comprensión de la especificación del Range HTTP. Por lo general, el servlet por defecto de servletcontainer (Tomcat, JBoss AS, Glassfish, etc.) ya soporta esto fuera de la caja. Entonces, si hay una manera de publicar la carpeta de medios en la web por medios estándar, para que no sea necesario crear un servlet para esto, entonces seguiría esta ruta.

No está claro qué servletcontainer está utilizando, así que supongo Tomcat en este ejemplo:

  1. Simplemente love.mp3 archivo love.mp3 en el contenido web público del proyecto web, de modo que solo esté disponible en <a href="love.mp3"> sin la necesidad de un servlet completo.

  2. O bien, coloque el archivo love.mp3 en una nueva subcarpeta de la carpeta Tomcat/webapps , por ejemplo, Tomcat/webapps/media/love.mp3 . De esta manera está disponible por <a href="/media/love.mp3"> .

  3. O bien, coloque el archivo love.mp3 otro lugar del disco, por ejemplo /path/to/media/love.mp3 y agregue la carpeta /media como nuevo contexto agregando la siguiente línea a /conf/server.xml de Tomcat:

    <Context docBase="/path/to/media" path="/media" />

    De esta forma, está disponible también por <a href="/media/love.mp3"> .

De cualquier forma, el DefaultServlet de Tomcat, que tiene soporte adecuado para las solicitudes de Range , se usará para transmitir el contenido.

Pero si no hay absolutamente ninguna forma de utilizar el servlet por defecto de servletcontainer, entonces necesita reescribir su código de servlet de tal manera que soporte apropiadamente las solicitudes de Range . Puede obtener inspiración de ejemplos de código abierto como Tomcat DefaultServlet y OmniFaces FileServlet .

Ver también:

Me gustaría transmitir mis archivos de audio / video a la web usando servlet.

Intenté con el siguiente servlet:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { File file = new File("/Users/myfolder/Documents/workspace/love.mp3"); response.setContentType(getServletContext().getMimeType(file.getName())); response.setContentLength((int) file.length()); Files.copy(file.toPath(), response.getOutputStream()); }

Y el siguiente HTML:

<a href="/media" data-format="mp3 ogg">Click Here!</a>

Sin embargo, el jugador solo está cargando ... cargando ... cargando ...

¿Cómo es esto causado y cómo puedo resolverlo?