0

私は自分の実装を考えていなかったので、今は立ち往生しています。IIS 7.5、URL Rewrite 2.0、および Jplayer を使用しています。

私の現在の実装では、ユーザーに音声ファイルをサーバーにアップロードしてもらいます。これらのオーディオ ファイルを聞くために、ユーザーはブラウザーで再生するか、アプリのメディア プレーヤーで Android/iOS を介して再生するための直接リンクを受け取ります。

これで、オーディオ ファイルに直接リンクしているユーザーをリダイレクトするランディング ページが作成されました。ランディングページはJplayerを使用しています。

問題は、オーディオ ファイルへの直接リンクを使用して jplayer で再生する必要があることです。直接リンクをリダイレクトしているため、メディア URL の読み込みに失敗しています。

私の Android および iOS アプリは、AV プレーヤーでファイルを再生するために .mp3 に直接リンクしているため、これも問題になります。とにかくこのあたりはありますか?より良い実装はありますか?この時点で何をすべきかわからない。

Jプレーヤー:

        $("#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>
4

1 に答える 1

0

考えられる解決策は、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>
于 2013-03-24T08:49:11.080 に答える