Обеспечить MP4 видео через обработчик ac # ashx не работает на iphone - PullRequest
1 голос
/ 05 января 2012

Я пытаюсь предоставить файл mp4 с помощью обработчика ashx, и он не работает на Iphone. Работает в Safari PC, хотя.

Я хочу, чтобы это работало (ясень):

<video width="100%" height="auto" controls=""><source type="video/mp4" src="play.ashx"></source></video>

Вместо (mp4):

<video width="100%" height="auto" controls=""><source type="video/mp4" src="play.mp4"></source></video>

Вот мой код:

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ClearContent();
        context.Response.ClearHeaders();

        var length = new System.IO.FileInfo(context.Server.MapPath("~/big_buck_bunny.mp4")).Length;

        context.Response.CacheControl = "Public";
        context.Response.AddHeader("Content-Length", length.ToString());

        context.Response.ContentType = "video/mp4";
        context.Response.WriteFile(context.Server.MapPath("~/big_buck_bunny.mp4"));

        context.Response.Flush();
        context.Response.Close();

    }

Вот файл, который вы хотите загрузить: http://clips.vorwaerts -gmbh.de / big_buck_bunny.mp4

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

Информация Fiddler (только различия):

Запрос Iphone:

User-Agent: AppleCoreMedia/1.0.0.9A405 (iPhone; U; CPU OS 5_0_1 like Mac OS X; en_us)
Accept: */*
Range: bytes=0-1
Accept-Encoding: identity
Connection: keep-alive

Запрос Windows Safari

User-Agent: QuickTime/7.7.1 (qtver=7.7.1;os=Windows NT 6.1Service Pack 1)
Pragma: no-cache

Ответы идентичны

Ответы [ 2 ]

1 голос
/ 13 января 2012

Перейти к значку настроек на вашем телефоне и из опций Safari включить плагины. Также убедитесь, что ваше видео имеет кодировку h264 baseline.

1 голос
/ 09 января 2012

По запросу iPhone отправляет заголовок Range.Как я считаю, браузер Safari на мобильных устройствах от Apple придирчив, ваш сервер должен реагировать соответствующим образом.

Из specs (пункт 14.35.2) и вашего вывода на fiddler вы должны начать с отправкитолько первые два байта и отвечают 206, после этого игрок, вероятно, вернется с GET, для которых установлены дополнительные заголовки.

У меня нет iPhone или iPad, поэтому я не могу проверить, верен ли этот ответ ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...