私たちの iOS アプリでは、ユーザーは動画をアップロードして再生できます。
- 動画の保存には AWS S3 バケットを使用しています。
- AWS Cloudfront は CDN です。
すべての動画は CDN URL を介してアクセスされます。例: https://dnxrwXXXXXX.cloudfront.net/1417696382ABC.mp4。
確認したとおり、CDN とインターネット接続に問題はありません。このビデオをブラウザの HTML プレーヤーで再生しても問題はありません。
しかし問題は、1 つのビデオをクリックすると、再生に時間がかかることです。私たちだけが見ることができるのはロード中です。ビデオの再生を開始した後、スムーズに再生されます。初期ロードの問題。
ここにコードがあります
MPMovieSourceType sourceType;
NSURL *currentURL = [[VideoDiskCache getSharedInstance] searchCash:urll];
if (!currentURL) {
currentURL = urll;
sourceType = MPMovieSourceTypeStreaming;
} else {
sourceType = MPMovieSourceTypeFile;
}
moviePlayerController = [[MPMoviePlayerViewController alloc]
initWithContentURL:currentURL];
moviePlayerController.view.superview.backgroundColor = [UIColor blackColor];
moviePlayerController.view.superview.superview.backgroundColor = [UIColor blackColor];
moviePlayerController.view.superview.superview.backgroundColor = [UIColor blackColor];
moviePlayerController.view.backgroundColor = [UIColor blackColor];
moviePlayerController.moviePlayer.movieSourceType = sourceType;
[AppDelegate getAppDelegate].navigationController.view.backgroundColor = [UIColor blackColor];
[[AppDelegate getAppDelegate].navigationController presentMoviePlayerViewControllerAnimated:moviePlayerController];
ここで url は元のクラウド フロント URL を意味します。動画がキャッシュにある場合は、ソース タイプ MPMovieSourceTypeFile でキャッシュから読み込みます。または、ソース タイプ MPMovieSourceTypeStreaming の URL からストリーミングします。また、HTTP ライブ ストリーミング (HLS) も使用しています。
これらのビデオはキャッシュされており、キャッシュされたビデオの再生に問題はありません。