流媒体音频在Android上不起作用

时间:2014-10-08 00:13:29

标签: android iis-7 html5-audio

我有一个简单的网页,它使用HTML 5音频标签进行流式传输。我已经设置了IIS7重写规则,以便浏览器无法直接下载MP3文件,但仍然可以通过音频控件进行流式传输。这适用于我的桌面(Chrome 37.0.2062.124 m),但不适用于我的Android设备(Samsung Galaxy S5)。我无法在Android上下载该文件,但我也无法对其进行流式处理。当我禁用重写规则时,两个设备上的流媒体工作正常,但当然也可以直接下载该文件。

这是我的页面:

    <div>
        <h3>
            Audio
        </h3>

        <audio controls="controls" preload="auto">
            <source src="audio.mp3" type="audio/mpeg">
        </audio>
    </div>

这是我的web.config:

    <rewrite>
        <rules>
            <rule name="Prevent MP3 Hotlinking" enabled="true">
                <match url=".*\.(mp3)$" />
                <conditions>
                    <add input="{HTTP_REFERER}" pattern="^$" negate="true" />
                    <add input="{HTTP_REFERER}" pattern="http://www.example.com/.*" negate="true" />
                </conditions>
                <action type="Rewrite" url="http://www.example.com" />
            </rule>
        </rules>
    </rewrite>

有什么想法吗?

谢谢!

编辑: 我已将手机设置为使用我的PC作为代理,因此我可以使用Fiddler2来监控流量。一些奇怪的事情正在发生。

从我的PC(有效),浏览器启动MP3文件的GET并正确接收HTTP 206响应。从我的手机(它没有工作),它首先发出一个GET到MP3文件,收到206响应,但然后立即启动另一个没有HTTP_REFERER的MP3文件的GET,这当然导致它失败到期到URL重写。我不确定我还能做些什么,这只是我手机上Chrome浏览器的问题吗?

2 个答案:

答案 0 :(得分:0)

您的服务器是否正在进行重定向?如果是这样,您是否在Android客户端中关注这些重定向?如果没有,那可能是你的问题。

答案 1 :(得分:0)

我可能已经想到了这一点。尝试在您的条件中添加以下内容:

<add input="{HTTP_USER_AGENT}" pattern="iPhone" negate="true" />

将iPhone用户代理更改为适合您的Galaxy S5的任何内容。这对我有用,虽然我没有进行重定向,而是自定义响应,例如“找不到文件”。我也没有像你一样使用空引用模式。

我在the Apple Support site

上找到了这个