0

ASP/VBscript を使用して mp4 ファイルをストリーミングしようとしています。ファイルとADODB.Streamいくつかのコードを起動して、ユーザーが要求した範囲を検出します。ビデオは正常に読み込まれていますが、シーク バーをクリックしても何も起こりません。私はすべてを設定しAccept-RangesContent-Range応答Content-Lengthヘッダーで:

HTML コード:

<video controls>
<source src="video.asp">
</video>

ビデオ.asp

filename ="test.mp4"

Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = 1
objStream.Open
objStream.LoadFromFile(server.mappath(filename))
sizebyte=objStream.size

Response.ContentType = "video/mp4"
Response.AddHeader "Accept-Ranges", "0-" & sizebyte

'Checking if user requested a range (by clicking on seekbar)

if Request.ServerVariables("HTTP_RANGE")<>"" then
    'Cleaning startbyte from (bytes=) and (-)
    startbyte=replace(Request.ServerVariables("HTTP_RANGE"),"-","")
    startbyte=replace(startbyte,"bytes=","")

    Response.AddHeader "Content-Range", "bytes " & startbyte & "-" & sizebyte-1 & "/" & sizebyte
    response.AddHeader "Content-Length", (int(sizebyte) - int(startbyte))
else
    response.AddHeader "Content-Length", sizebyte
end if

do while not objStream.EOS
    response.binarywrite objStream.Read(1024000)
    Response.Flush
loop

objStream.Close
Set objStream = Nothing
Response.StatusCode = 206
4

0 に答える 0