Я пытаюсь написать службу 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>
Если вы можете предоставить ссылки на источники о прогрессивной загрузке, это также будет полезно. Мой поиск в Google не очень-то полезен для прогрессивной загрузки + wcf. Ценю твою помощь.
Код Android:
player.reset();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setDataSource(path);
player.prepare();
player.start();
проигрыватель является MediaPlayer объектом. Я устанавливаю источник данных для URL в пути.