Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Embedded MediaPLayer и лишний GET / 4 сообщений из 4, страница 1 из 1
03.07.2006, 14:14
    #33827571
kri
kri
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Embedded MediaPLayer и лишний GET
У меня такая проблема.
На одной странице внедрен объект Windows MediaPlayer:

--- test.asp ---------------------------
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<%@ LANGUAGE=VBScript enablesessionstate=true LCID= 1033  %>
<% option explicit %>
<html>
<body>

<h2>TEST</h2>
	<embed type="application/x-mplayer2" 
		pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" 
		src="test2.asp?fn=test.wav" 
		width= 320  
		height= 69 
		name="MediaPlayer" 
		autostart="False" 
		ShowStatusBar= 1 
		ShowDisplay= 0 
		ShowControls= 1 >
	</embed>
</body>
</html>

Параметр src объекта MediaPlayer ссылается на другой ASP скрипт,
который возвращает WAV файл как двоичный поток:

--- test2.asp ----------------------------
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
<%@ LANGUAGE=VBScript enablesessionstate=true LCID= 1033  %>
<% option explicit %>
<%
Dim fn
fn = Request.QueryString("fn")
if not isNull(fn) and fn <> "" then
	Dim vpath, path, strExt, strContentType
	vpath = "logs"
	path = Server.MapPath(vpath)

	strExt = LCase(GetFileExtension(fn))
	if strExt = "mp3" then
		strContentType = "audio/mp3"
	else
		strContentType = "audio/wav"
	end if

	Dim strFilePath
	strFilePath = path & "\" & fn 'This is the path to the file on disk. 

	Dim objStream
	Set objStream = Server.CreateObject("ADODB.Stream")
	objStream.Open
	objStream.Type =  1 
	objStream.LoadFromFile strFilePath

	Response.AddHeader "Content-Type", strContentType
	Response.AddHeader "Content-Disposition", "inline; filename=" & fn
	Response.AddHeader "Accept-Ranges", "bytes"
	Response.AddHeader "Content-Length", CStr(objStream.Size)
	Response.BinaryWrite objStream.Read

	objStream.Close
	Set objStream = Nothing
end if

Function GetFileExtension(fn)
	Dim strExt, intExtPos
	strExt = ""
	intExtPos = InstrRev(fn, ".")
	if (not IsNull(intExtPos)) and intExtPos >  0  then
		strExt = Mid(fn, intExtPos +  1 )
	end if
	GetFileExtension = strExt
End Function
%>


Почему-то веб-сервер получает 2 GET-запроса:
один от MediaPlayer'а, и другой - от самого браузера:

Код: plaintext
1.
2.
3.
 2006 - 07 - 03   08 : 44 : 32   192 . 168 .X.X -  192 . 168 .X.X  80  GET /test.asp -  200   0   1018  Mozilla/ 4 . 0 +(compatible;+MSIE+ 6 . 0 ;+Windows+NT+ 5 . 1 ;+SV1;+.NET+CLR+ 1 . 1 . 4322 )
 2006 - 07 - 03   08 : 44 : 32   192 . 168 .X.X -  192 . 168 .X.X  80  GET /test2.asp fn=test.wav  200   0   119682  Windows-Media-Player/ 9 . 00 . 00 . 3250 
 2006 - 07 - 03   08 : 44 : 32   192 . 168 .X.X -  192 . 168 .X.X  80  GET /test2.asp fn=test.wav  200   0   119682  Mozilla/ 4 . 0 +(compatible;+MSIE+ 6 . 0 ;+Windows+NT+ 5 . 1 ;+SV1;+.NET+CLR+ 1 . 1 . 4322 )

Однако, если в параметре src указать прямую ссылку
на WAV файл на сервере (src="test.wav"), тогда браузер
послыет один GET (из MediaPlayer'а):

Код: plaintext
1.
2.
 2006 - 07 - 03   08 : 45 : 05   192 . 168 .X.X -  192 . 168 .X.X  80  GET /test.asp -  200   0   1005  Mozilla/ 4 . 0 +(compatible;+MSIE+ 6 . 0 ;+Windows+NT+ 5 . 1 ;+SV1;+.NET+CLR+ 1 . 1 . 4322 )
 2006 - 07 - 03   08 : 45 : 05   192 . 168 .X.X -  192 . 168 .X.X  80  GET /test.wav -  200   0   119635  Windows-Media-Player/ 9 . 00 . 00 . 3250 

Как можно избавиться от лишнего запроса к серверу?
...
Рейтинг: 0 / 0
03.07.2006, 15:05
    #33827778
Nisus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Embedded MediaPLayer и лишний GET
можно попробовать сделать свой хендлер для расширений .wav и .mp3, потому что скорее всего это поведение связанное с тем, что c точки зрения браузера идет запрос к asp-странице. В общем имхо стоит попробовать обмануть его.
...
Рейтинг: 0 / 0
03.07.2006, 16:07
    #33828021
kri
kri
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Embedded MediaPLayer и лишний GET
Пожалуйста, поясните, где можно попробовать сделать "свой хэндлер"для .wav и .mp3? Я не понял...
...
Рейтинг: 0 / 0
05.07.2006, 11:29
    #33832175
Nisus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Embedded MediaPLayer и лишний GET
извиняюсь за поздний ответ не видел сообщения. Я имел в виду отдавать звуковые файлы не через доп. файл /test2.asp, а сразу смапить в IIS-е расширения .wav и .mp3  на обработчик asp и в нем уже по имени запрошенного файла писать в ответ этот файл. Для asp.net это стандартный прием.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Embedded MediaPLayer и лишний GET / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]