Android wcf渐进式下载

Android wcf渐进式下载,android,wcf,progressive-download,Android,Wcf,Progressive Download,我试图写一个WCF服务,可以发送mp3文件到客户端。我需要它来传输mp3文件使用渐进下载,因为客户端是一个android应用程序,我希望它开始播放尽快。如何使用WCF进行渐进式下载?可能吗 这是我到目前为止所拥有的。这似乎可行,但不是渐进式下载。它在android应用程序中播放,但只有在下载完整个文件后才能播放 服务合同: [OperationContract, WebGet(UriTemplate = "/GetFileStream/?filepath={virtualPath}")]

我试图写一个WCF服务,可以发送mp3文件到客户端。我需要它来传输mp3文件使用渐进下载,因为客户端是一个android应用程序,我希望它开始播放尽快。如何使用WCF进行渐进式下载?可能吗

这是我到目前为止所拥有的。这似乎可行,但不是渐进式下载。它在android应用程序中播放,但只有在下载完整个文件后才能播放

服务合同:

[OperationContract, WebGet(UriTemplate = "/GetFileStream/?filepath={virtualPath}")]
    Stream GetFileStream(string virtualPath);
服务配置:

    <bindings>
        <webHttpBinding>
            <binding name="streamedHttpBinding" transferMode="StreamedResponse"
                     maxReceivedMessageSize="1000000000">
            </binding>
        </webHttpBinding>
    </bindings>
    <service name="...">
            <endpoint address="" behaviorConfiguration="restful" binding="webHttpBinding"
                bindingConfiguration="streamedHttpBinding"
                contract="..." />

     </service>
     <behaviors>
        <endpointBehaviors>
            <behavior name="restful">
                <webHttp />
            </behavior>
        </endpointBehaviors>
        <serviceBehaviors>
            <behavior name="">
                <serviceMetadata httpGetEnabled="true" />
                <serviceDebug includeExceptionDetailInFaults="true" />
            </behavior>
        </serviceBehaviors>
    </behaviors>

玩家是一个物体。我正在将数据源设置为路径中的url

请参见我对这个问题的回答,它基本上描述了在Android上使用AsyncPlayer“打开”(并逐步流式传输)mp3文件的服务器使用IIS(MediaPlayer也适用于此)

这里还可以看到我对这个问题的回答,它描述了一个用C#编写的简单HTTPListener“服务”。它可以用于各种各样的事情,并且可以用来打开一个mp3文件,MediaPlayer可以逐步地播放该文件


只是一些WCF的替代方案。

所以我找出了问题所在。WCF做的是渐进式下载。我认为当您从服务返回流时,行为配置部分是必要的。但是对于webhttpbinding,为了进行渐进式下载,不应该设置它。将绑定配置设置为streamedResponse将启用分块并且这不是渐进下载。下面是正确的配置

<bindings>
</bindings>
<service name="...">
        <endpoint address="" behaviorConfiguration="restful" binding="webHttpBinding"
            contract="..." />

 </service>
 <behaviors>
    <endpointBehaviors>
        <behavior name="restful">
            <webHttp />
        </behavior>
    </endpointBehaviors>
</behaviors>

请注意,端点上没有bindingConfiguration


感谢@MisterSquonk的评论。他们帮我找对了地方

@nithin:你的Android应用程序是如何访问mp3文件的?你在用什么代码?@MisterSquonk我认为android客户端运行正常。查看更新问题中的代码。@nithin:好的,您的“服务”端使用WCF编写有什么特殊原因吗?您想要的效果可以通过一个简单的HTTP服务来实现。@MisterSquonk在这一点上是正确的。我假设MonoAndroid是手机端客户端,所以我删除了我的答案。它不适用。@MisterSquonk服务器端包含其他C#代码,因此我只知道两个选项是WCF和ASP.NET web服务。我也不知道如何进行渐进式下载。是否可以使用asp.net服务?我还没有调查过。
<bindings>
</bindings>
<service name="...">
        <endpoint address="" behaviorConfiguration="restful" binding="webHttpBinding"
            contract="..." />

 </service>
 <behaviors>
    <endpointBehaviors>
        <behavior name="restful">
            <webHttp />
        </behavior>
    </endpointBehaviors>
</behaviors>