ビデオ: Google Keynote (Google I/O'19) 2024
このセクションでは、MPMoviePlayerViewControllerクラスの高レベルの抽象化を使用してiOSアプリケーションでビデオを再生する方法を説明します。ここには、ビデオビューコントローラのTTTVideoViewControllerファイルからのコードがあります:
- (IBAction)playVideo:(id)sender {MPMoviePlayerViewController * moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL]; [self presentMoviePlayerViewControllerAnimated:moviePlayer];}
シンプルさ自体!必要なのは、ファイルシステム上のムービーファイル、またはムービープレーヤをインスタンス化するインターネットURLを指すURLだけです。プレーヤーのUIは、停止、開始などを処理します。
<! - 1 - >メンバー変数movieURLは、このビューコントローラ用にディスプレイが初期化された後に呼び出されるviewDidLoadメソッドで設定されます(ここでサンプルムービーはVideos。bundleというリソースファイルに保存されます)。 :
- (void)viewDidLoad {[super viewDidLoad]; //ビューを読み込んだ後に追加の設定を行います。 NSString * videoPath = [[NSBundle mainBundle] pathForResource:@ "Videos。bundle / SampleVideo" ofType:@ "MOV"];次の例は、recordVideoとして知られる下位レベルのメソッドを使用して、前のレベルより1レベル低い抽象化を使用する方法を示しています。
<!movieURL = [NSURL fileURLWithPath:videoPath] (UIImagePickerController * imagePicker = [[UIImagePickerController alloc] init]; - (IBAction)recordVideo:(id)送信者。 imagePicker。 sourceType = UIImagePickerControllerSourceTypeCamera; imagePicker。 mediaTypes = [[NSArray alloc] initWithObjects:(NSString *)kUTTypeMovie、nil]; imagePicker。デリゲート=自己; [[UIApplication sharedApplication] setStatusBarHidden:YES]; [self presentViewController:imagePicker animated:YES completion:nil];}このメソッドが呼び出されると、カメラインターフェイス付きの画面が表示されます。この画面を使用して、録画を開始および停止することができます。ビデオ録画が完了すると、この画面は制御を呼び出し元のビューコントローラに戻します。
<! VideoPickerControllerDidCancelは、VideoPickerControllerDidCancelが呼び出されたときに呼び出されます(例:VideoPickerControllerDidCancel)。キャンセル。それは単にピッカーを止めて、iOSステータスバーを再び表示するだけです。- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {[[UIApplication sharedApplication] setStatusBarHidden:NO]; [picker dismissViewControllerAnimated:YES completion:nil];}
didFinishPickingMediaWithInfoは、iOSステータスバーを再度表示して開始し、ピッカーを終了します。次に、記録されたビデオをデバイスのカメラロールに保存します。最後に、このメソッドはメンバ変数movieURLをこの新しいビデオをポイントするように設定します。したがって、再度ビデオを再生することを選択すると、新しく記録されたムービーが再生されます。 (NSDictionary *)結果{NSURL * moviePathURL = [results objectForKey:UIImagePickerControllerMediaURL];(9) - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo: NSString * moviePath = [moviePathURLパス]; movieURL = moviePathURL; //(UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(moviePath)){UISaveVideoAtPathToSavedPhotosAlbum(moviePath、nil、nil、nil);} [[UIApplication sharedApplication] setStatusBarHidden:NO]; //カメラロールに保存します。 [picker dismissViewControllerAnimated:はい完了:なし];}