FlowPlayer - обработчик ошибок запуска на одной из двух машин, один и тот же код? - PullRequest
1 голос
/ 09 сентября 2010

ASP.NET MVC2, фреймворк 3.5

Машина 1: dev box - Win7 Ultimate x64 (IIS 7.5), VS2010 Ultimate, Firefox 3.6

Машина 2: dev server - Win server 2003 (IIS 6).

Код на сервере компилируется из SVN и развертывается в папках IIS на сервере TeamCity.

Проблема заключается в следующем: у меня есть страница, которая показывает видео с использованием FlowPlayer. Я назначил обработчик ошибок следующим образом:

<script language="javascript">

    function playerError(errorCode, errorMessage) {
        window.location = "/videos/unavailable";
    }

    flowplayer("player"
    , "/scripts/flowplayer/flowplayer-3.2.2.swf"
    , {
        onError: playerError
        ,
        clip: { autoPlay: false, autoBuffering: true }
      }
    );
</script>

Когда проигрыватель не может найти видео, которое он должен воспроизвести, я ожидаю, что он вызовет свой обработчик onError, который перенаправит пользователя на страницу «Недоступно». Это работает, как и ожидалось на моей коробке разработчика. Идентичный код на сервере не работает. Я просматриваю оба в одном браузере с одного компьютера.

Это странно. Идеи?

1 Ответ

1 голос
/ 15 октября 2010

Оказывается, что существует несколько способов кодирования файлов фильмов. В используемом нами MP4 кажется, что блок метаданных, содержащий некоторые атрибуты, необходимые для начала воспроизведения файла, может находиться в конце файла или в начале.

Для потоковой передачи это должно быть в начале файла. В противном случае проигрыватель должен загрузить весь файл, прежде чем он сможет начать воспроизведение. Для файла размером 100 МБ это явно не идеально.

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

Надеюсь, это поможет кому-то еще.

...