2013-11-30 4 views
4

У меня встроенный медиаплеер Windows на веб-странице, используя обычные теги <object> и <embed>. Видео обслуживается ashx (обработчик http). Когда я пытаюсь воспроизвести видео, я обычно (но не всегда) получаю сообщение об ошибке, сообщающее мне, что расширение файла (ashx) не соответствует формату файла.Воспроизведение Windows Media Video от .ashx

Это происходит в IE (9 & 10), а также в Firefox (последний) с плагином WMP.

Я знаю, что теги (с classid и т. Д.) Являются правильными, потому что отображается медиаплеер и позволяет мне нажать кнопку «играть».

Ashx возвращает правильный тип mime (video/x-ms-wmv) и допустимое имя файла (somevideo.wmv) в заголовках ответов. Я пробовал приложение для размещения контента и встроенный.

я пытался ССЫЛОК 'HTTP: //', 'https: //', и '//' (который я предпочитаю)

Если я ставлю URL (включая .ashx) из видео в адресной строке браузера, загрузка и воспроизведение видео.

Если я изменяю тег объекта, чтобы использовать прямой путь к видеофайлу (/somewhere/somevideo.wmv), он работает, но я не могу использовать его в качестве решения.

Те же ashx обслуживают видео и аудио в различных форматах без всякой суеты - кажется, что встроенный медиаплеер Windows не нравится.

Это работает уже несколько лет - я думаю, что это новое поведение, хотя я не могу определить, что изменилось, кроме обновлений браузера.

EDIT: более тщательное исследование в Fiddler показало то, что я пропустил раньше. Если я напрямую получаю доступ к видео (вводя свой urx url в адресной строке браузера), видео воспроизводится на автономном медиаплеере. Заголовки содержимого и расположения правильны.

Однако при использовании встроенного проигрывателя я обычно (не всегда) получаю ВАРИАНТЫ и PROPFIND-запросы от пользовательского агента «Microsoft-WebDAV-MiniRedir/6.1.7601». У меня нет поддержки WebDAV, и я не отвечаю на варианты и запросы propfind. Встроенный проигрыватель не запрашивает фактический видеофайл.

Коррекция - Я на самом деле ответить на запрос опций - вот запрос и ответ информация от скрипача:

OPTIONS http://mydomain.com/myhandler.ashx HTTP/1.1 
User-Agent: Microsoft-WebDAV-MiniRedir/6.1.7601 
translate: f 
Connection: Keep-Alive 
Host: mydomain.com 

HTTP/1.1 200 OK 
Allow: OPTIONS, TRACE, GET, HEAD, POST 
Server: Microsoft-IIS/7.5 
Public: OPTIONS, TRACE, GET, HEAD, POST 
X-Powered-By: ASP.NET 
Date: Tue, 24 Dec 2013 16:03:49 GMT 
Content-Length: 0 

Далее следуют четыре идентичных запросов, используя PROPFIND вместо OPTIONS. ответ 404.

+0

Пробовал ли вы программу Fiddler http proxy/debugger, чтобы получить информацию о заголовках запроса/ответа? – KoViMa

+0

yes Я добавил дополнительную информацию по моему вопросу – Ray

+0

Какой именно код 404? 404,17? –

ответ

2

Чтобы успешно воспроизвести файл, вам необходимо правильно указать заголовки Content-Disposition и Content-Type.

В вашем ASHx, убедитесь, что вы добавить следующие строки,

Response.AddHeader("Content-Disposition","attachment;filename='a.wmv'"); 
Response.AddHeader("Content-Type","video/wmv"); 

Просьба указать правильное имя и тип содержимого, основанный на типе файла, который вы имеете, и заменить их в коде выше.

Похоже, он имеет Cross Origin Resource Sharing Issue,

убедитесь, что вы возвращаете правильные заголовки для другого домена, как было предложено следующее ответ.

Access-Control-Allow-Origin: * 
Access-Control-Allow-Methods: GET, POST, OPTIONS 
Access-Control-Allow-Headers: X-Requested-With, Accept, Content-Type, Origin 
Access-Control-Max-Age: 1728000 

Заменить * с областью, где ваша страница размещенная, который встраивает свой медиа-плеер.

+0

Я делаю это уже. Я использую «video/x-ms-wmv» в качестве типа mime. Я пробовал «video/wmv» as вы сказали, но это не имело никакого значения. – Ray

+0

Я думаю, что «Content-Type» будет достаточно, потому что «Content-Disposition: attachment» обычно используется для отображения диалога «Сохранить как ...» и сохранения связанного содержимое локально. – KoViMa

+0

Я пробовал как вложение, так и inline - ни один не работает. – Ray

 Смежные вопросы

  • Нет связанных вопросов^_^