3

У меня возникли проблемы с настройкой свойства Silverlight 4 MediaElement Source в приложении ASP.NET MVC 2. У меня есть машина разработки Windows 7 и сервер промежуточного уровня Windows Server 2008.Silverlight 4 MediaElement Source Проблемы Uri

Локально Я использую источник MediaElement как:

<MediaElement x:Name="VideoMediaElement" Source="Assets/126.mp4"> 
... 
</MediaElement> 

Этот источник работает на моей машине развития и мой перевалочный сервер, но я обнаружил, что это работает только в Google Chrome. После большого исследования и тестирования я преобразовал мое приложение, чтобы установить источник быть:

<MediaElement x:Name="VideoMediaElement" Source="http://localhost:40000/ClientBin/Assets/126.mp4"> 
... 
</MediaElement> 

Используя этот тип Uri позволяет мое видео играть на моем локальном сервере в Internet Explorer, а также Google Chrome , Когда я нажимаю это до моего ступенчатого сервера путь рассчитывается как:

<MediaElement x:Name="VideoMediaElement" Source="http://myDomain/MyVirtualDir/ClientBin/Assets/126.mp4"> 
... 
</MediaElement> 

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

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

Каков предпочтительный способ загрузки видеофайла из файловой структуры в Silverlight 4 MediaElement?

ответ

2

Мои первые шаги по диагностике этого были бы:

  • прекращение использования хром. Сделайте все это в IE, затем проверьте другие браузеры.
  • прекратите использовать полный URL. Учитывая, что XAP, хост-страница и ресурс находятся на одном сервере, мы знаем, нам это не нужно, поэтому не используйте его.
  • Не используйте браузер на промежуточном сервере, используйте другой клиентский компьютер для тестирования.
  • Установите Fiddler2 на клиентской машине, как сообщает информация о сервере, и посмотрите, что на самом деле запрашивается.

Вы пытались «/assets/126.mp4» вместо «assets/126.mp4»?

Если вы получаете 404 из URL-адреса, который хорошо выглядит на сервере mime map, есть ли отображение для .mp4?

Также проверьте безопасность доступа к файлам.

+0

Спасибо за помощь.Вы ответили на мой вопрос о том, нужен ли мне полный путь или нет. Чтобы быть ясным, мне не нужен полный путь в моем источнике, если он все живет под одним и тем же ClientBin. Кроме того, на моем сервере отсутствовал тип MIME для «.mp4» с типом «video/mpeg». Как только я добавил это, как относительные, так и абсолютные пути снова начали работать. Теперь, только если он будет передавать его и не загружать весь файл сначала, а затем воспроизводить его, но это будет тема для другого вопроса. –

+0

@Steve: Некоторые исследования по «Прогрессивной загрузке Silverlight» могут помочь в проблеме с загрузкой. – AnthonyWJones

0

Был ли проверен скрипач, что вам скажет настоящий HTTP-запрос/ответ? Возможно, есть информация о безопасности (междоменный доступ) или, по крайней мере, вы получите более подробную информацию о том, что происходит под обложкой ... вы можете найти скрипач прямо здесь: http://www.fiddler2.com/fiddler2/

+0

Я использовал скрипач. Он показывает 404 ошибки на «/MyVirtualDir/ClientBin/Assets/126.mp4», но я не уверен, что это говорит мне много. Я знаю, что он не может его найти, поэтому я уверен, что это проблема с путями. Если я использую относительный путь, например, «Assets/126.mp4», скрипт не показывает проблемы; но опять же, похоже, что это работает только в Google Chrome. –

+0

Вы установили действие сборки для ресурса для видео, тогда xap большой, но вы можете получить к нему относительный. –