ある種のダウンロード サービスを作成していますが、以前の部分的なダウンロードを再開する機能があります。私は現在、このようなスキップメソッドを使用しています
long skipped = 0;
while (skipped < track.getCacheFile().length()){
skipped += is.skip(track.getCacheFile().length()-skipped);
}
テストを行ったところ、入力ストリームで 45 mb をスキップするのに約 57 秒かかりました。特定のネイティブ コードがこれを行う方法に興味があります。たとえば、メディア プレーヤーはリモート ストリームの任意の部分を瞬時にシークできます。同じライブラリにアクセスできないことはわかっていますが、同様のことを達成できますか。
ところで、そのテストはwifiで行われました。通常のデータ ネットワークでは明らかに非常に遅くなります。
更新:非常に簡単です(以下に感謝します)
if (track.getCacheFile().length() > 0){
request.setHeader("Range","bytes="+track.getCacheFile().length()+"-");
}