사용자에게 일부 (HTML5 호환) 비디오를 제공하는 웹 응용 프로그램에서 작업 중입니다. videojs을 사용하여 "preload"속성을 "auto"으로 설정 한 동영상을 표시합니다.HTML5 비디오를 미리로드하면 연결이 열립니다.
브라우저는 일반적으로 동영상의 일부만로드하므로 괜찮습니다. 문제는 그것이 OutputStream
에 작성하여 비디오를 파견하는 백엔드 (봄 부팅)으로 열린 연결을 유지한다는 것입니다 :
while ((read = input.read(buffer)) > 0) {
output.write(buffer, 0, read); // once video is preloaded, it keeps waiting here
output.flush();
}
1 분 후, 사용자가 재생 버튼을 누르면하지 않는 경우, ClientAbortedException: java.net.SocketTimeoutException
을 던집니다.
미리로드가 완료되면 브라우저에서 연결을 닫을 수있는 방법이 있습니까? (우리 시스템의 경우 사용하지 않을 경우 최대한 빨리 InputStream
을 닫는 것이 중요합니다.
우리는 재생 목록을 사용하지 않지만 귀하의 솔루션은 나에게 약간의 통찰력을주었습니다. 감사. – Ivan