powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Embedded MediaPLayer и лишний GET
4 сообщений из 4, страница 1 из 1
Embedded MediaPLayer и лишний GET
    #33827571
kri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
kri
Гость
У меня такая проблема.
На одной странице внедрен объект 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
Embedded MediaPLayer и лишний GET
    #33827778
Nisus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно попробовать сделать свой хендлер для расширений .wav и .mp3, потому что скорее всего это поведение связанное с тем, что c точки зрения браузера идет запрос к asp-странице. В общем имхо стоит попробовать обмануть его.
...
Рейтинг: 0 / 0
Embedded MediaPLayer и лишний GET
    #33828021
kri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
kri
Гость
Пожалуйста, поясните, где можно попробовать сделать "свой хэндлер"для .wav и .mp3? Я не понял...
...
Рейтинг: 0 / 0
Embedded MediaPLayer и лишний GET
    #33832175
Nisus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извиняюсь за поздний ответ не видел сообщения. Я имел в виду отдавать звуковые файлы не через доп. файл /test2.asp, а сразу смапить в IIS-е расширения .wav и .mp3  на обработчик asp и в нем уже по имени запрошенного файла писать в ответ этот файл. Для asp.net это стандартный прием.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Embedded MediaPLayer и лишний GET
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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