URL-адрес IIS 7.5 перенаправляет прямую ссылку на страницу мультимедиа

Я не продумал свою реализацию, и теперь я застрял. Я использую IIS 7.5, URL Rewrite 2.0 и Jplayer.

Моя текущая реализация заключается в том, что пользователи загружают аудиофайлы на мой сервер. Чтобы прослушать эти аудиофайлы, пользователям предоставляется прямая ссылка для воспроизведения в браузере или через Android/iOS в медиаплеерах приложений.

Теперь я создал целевую страницу, на которую хочу перенаправить этих пользователей с прямой ссылкой на аудиофайл. Целевая страница использует Jplayer.

Проблема в том, что мне нужно использовать прямую ссылку на аудиофайл, чтобы jplayer воспроизвел его. Поскольку я перенаправляю прямую ссылку, она не может загрузить URL-адрес мультимедиа.

Это также становится проблемой, поскольку мои приложения для Android и iOS напрямую ссылаются на .mp3, чтобы воспроизвести файл в своих AV-плеерах. Есть ли что-нибудь вокруг этого? Есть ли лучшая реализация? Не уверен, что делать в этот момент.

Джейплеер:

        $("#jquery_jplayer_1").jPlayer({
    ready: function (event) {
        $(this).jPlayer("setMedia", {
            mp3: "http://192.168.0.28/flows/t/test/test1334187052069.mp3"
        }).jPlayer("play"); // auto play;
    },
    swfPath: "js",
    supplied: "mp3",
    errorAlerts: true,
    warningAlerts: true,
    wmode: "window"
});

Правило перенаправления IIS 7.5:

<rewrite>
    <rules>
        <rule name="FlowURLs">
            <match url="^flows/[_0-9a-zA-Z-]+/[_0-9a-zA-Z-]+/([._0-9a-zA-Z-]+)" />
            <action type="Redirect" redirectType="Found" url="music.html?flow={R:1}" />
        </rule>
    </rules>
</rewrite>

person nawlrus    schedule 21.03.2013    source источник


Ответы (1)


Возможным решением может быть проверка заголовка HTTP accept и проверка того, не ожидает ли браузер загрузки страницы. Если это так, вы перенаправляетесь на целевую страницу вашего игрока. В противном случае вы оставляете запрос как есть и позволяете ему загружать аудиофайл напрямую.

Вы можете проверить заголовок accept с условием:

<rewrite>
    <rules>
        <rule name="FlowURLs">
            <match url="^flows/[_0-9a-zA-Z-]+/[_0-9a-zA-Z-]+/([._0-9a-zA-Z-]+)" />
            <conditions>
                <add input="{HTTP_ACCEPT}" pattern="text/html" />
            </conditions>
            <action type="Redirect" redirectType="Found" url="music.html?flow={R:1}" />
        </rule>
    </rules>
</rewrite>
person Marco Miltenburg    schedule 24.03.2013
comment
Привет, я забыл, что я изменил файл music.html на php. Могу ли я по-прежнему использовать шаблон HTTP_ACCEPT с этим типом файла? - person nawlrus; 25.03.2013
comment
Да, просто замените music.html на music.php. - person Marco Miltenburg; 26.03.2013