我没有想到我的实施,现在我被卡住了。我正在使用IIS 7.5,URL Rewrite 2.0和Jplayer。
我目前的实现是我让用户将音频文件上传到我的服务器。要收听这些音频文件,用户可以直接链接到浏览器或通过应用媒体播放器中的Android / iOS播放。
现在我已经创建了一个登录页面,我希望将这些用户直接链接到音频文件。着陆页正在使用Jplayer。
问题是我必须使用音频文件的直接链接才能让jplayer播放它。由于我正在重定向直接链接,因此无法加载媒体网址。
这也成为一个问题,因为我的Android和iOS应用程序直接链接到.mp3,以便在其AV播放器中播放文件。有没有办法解决?有更好的实施吗?不知道此时该怎么做。
Jplayer:
$("#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>
答案 0 :(得分: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>