0

我认为我的实施没有通过,现在我被卡住了。我正在使用 IIS 7.5、URL 重写 2.0 和 Jplayer。

我目前的实现是让用户将音频文件上传到我的服务器。要收听这些音频文件,用户将获得一个直接链接,可以在浏览器中播放或通过 Android/iOS 在应用媒体播放器中播放。

现在我创建了一个登陆页面,我想将那些直接链接到音频文件的用户重定向到该页面。登陆页面使用 Jplayer。

问题是我必须使用音频文件的直接链接来让 jplayer 播放它。由于我正在重定向直接链接,因此无法加载媒体网址。

这也成为一个问题,因为我的 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>
4

1 回答 1

0

一种可能的解决方案可能是检查 HTTP 接受标头并查看它是否是期望加载页面的浏览器。如果是这样,那么您将重定向到您的播放器登录页面。否则,您将请求保持原样并让它直接加载音频文件。

您可以使用条件检查接受标头:

<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 回答