ADO: åbn binær fil, uden at læse ind i ram
Jeg har fundet et streaming script, som jeg bruger til at streame mp3'erpt. bruges scriptet kun af mig selv, samt nogle få udvalgte - ide der er væsentlige sikkerhedsfejl som skal rettes...
hvad jeg gerne vil have hjælp til er følgende:
1. (50 point)
I stedet for at brue "LoadFromFile" til at lægge hele filen ind i mine RAM, skal ADO bruge en "pointer" til filen, hvorefter kun den del som skal streames, bliver læst fra filen. - Jeg kan ikke få "ADO.open("fil.mp3",1,1)" til at virke hvilket burde være svaret ?
2. (100 point)
Windows Media Player (WMP) henter hele filen, istedet for kun at hente segmenter ad gangen - hvordan tvinger jeg scriptet til kun at udskrive 10-30 kbit pr sekund - afhængig af bit-hastigheden ? til denne løsning har jeg selv et script som kan finde bit-hastigheden - eventuelt ville 25-30 kbs være nok til de allerfleste mp3'er
3. (50 point)
Min Script-timeout er sat til 999 sekunder ~ 16 minutter. hvordan undgår jeg at scriptet 'timer out' på lange mp3'er ??
-------------------------
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile Request.querystring("Listen")
lSize = objStream.size
Response.AddHeader "Content-Disposition", "inline; filename=" & Request.querystring("sFile")
Response.AddHeader "Content-Length", lSize
CHUNK=2048
NumberofBlocks=(lSize -(lsize mod chunk))/chunk
For lBlocks = 1 To NumberofBlocks
If Response.IsClientConnected = False Then Exit For
Response.BinaryWrite objStream.Read(CHUNK)
Response.Flush
Next
if NumberofBlocks*CHUNK < lSize then
Response.BinaryWrite objStream.Read(lSize - (NumberofBlocks*CHUNK))
Response.Flush
end if
-------------------------
