0

私のアプリケーションでは、サーバーから複数の動画を別々の時間にダウンロードする必要があります。動画データをダウンロードして、後で再生するために保存する方法はあるのでしょうか? 最初にビデオ データをダウンロードして NSData に保存しましたが (以下を参照)、これは MPMoviePlayerController 内では使用できません。

NSString *imageURL = [NSString stringWithFormat:@"%@%@",@"http://wildknowledge.co.uk",[mapPoint objectForKey:@"videopath"]];

[mapPoint setObject:[NSData dataWithContentsOfURL:[NSURL URLWithString:[imageURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]] forKey:@"videopath"];

次に、次を使用して後で URL をセットアップできると考えました。

NSString *imageURL = [NSString stringWithFormat:@"%@%@",@"http://wildknowledge.co.uk",[mapPoint objectForKey:@"videopath"]];

NSURL *movieURL = [[NSURL alloc] initFileURLWithPath:imageURL];
[mapPoint setObject:movieURL forKey:@"videopath"];

しかし、明らかに NSURL は完全な URL の場所のみを保存し、その場所のデータは保存しないため、ビデオの再生に関しては最初にバッファリングする必要がありますが、これは望ましくありません。

それで、後で使用するためにNSURLからデータを保存する方法を誰か教えてもらえますか?

4

1 に答える 1

1

私があなたなら、NSFileHandleを使用してムービーのチャンクを読み取り、ファイル システムに直接保存します。この方法では、ムービーをメモリに保持しないため、使用可能なメモリを超えることがないため、アプリがクラッシュすることはありません。

大きなデータベース (>700MB) をダウンロードする必要があるときに、アプリでこのアプローチを使用しましたが、かなりうまく機能しました。ただし、ムービーのサイズによっては、md5 チェックサムなど、送信が成功したことを確認するための検証メカニズムを追加する必要がある場合があります。

于 2012-12-19T16:57:21.763 に答える