HƯỚNG DẪN XÂY DỰNG MỘT MÁY QUAY VÀ PLAYBACK Multimedia phổ biến sống đại , Ảnh, video , âm nhạc… Phần trước tìm hiểu làm để xây dựng máy ảnh đơn giản,truy cập thư viện chung, xem ảnh hình lớn Phần giới thiệu cho bạn máy quay đơn giản xem lại quay đươc MediaPlayer framework hỗ trợ xem lại video Trong có hai phương thức: AVFoundation – Giúp bạn thiết kế tính tiên tiến quản lý tài sản phương tiện truyền thông, chỉnh sửa phương tiện truyền thông, quản lý theo dõi Không có giao diện hỗ trợ xử lý tuỳ chỉnh MPMoviePlayerController – có giao diện giúp chơi nhạc video , nhiên chỉnh sửa Trong hướng dẫn này, tập trung vào MPMoviePlayerController Giúp chơi video đơn giản Mục tiêu: Sử dụng UIImagePickerController để quay video Sử dụng MPMoviePkayerController để chơi video vừa quay xong Khởi tạo Project ! Thiết kế giao diện: Để quay video ta kéo vào button phép bắt đầu quay!!! đặt tên: Recording xoá file ViewController Vào newFile tạo file : đặt tên “recordingAndPlaybackViewController” Dùng để quản lý view vừa tạo Kết nối view với class!!! Tạo action cho button “recording” Quay video Mã nguồn Thêm thư viện: quản lý chơi nhạc! #import "MediaPlayer/MediaPlayer.h" #import "MobileCoreServices/MobileCoreServices.h" Để lấy url video quay đối tượng đại diện để chạy video! Chúng ta khai báo: @property(nonatomic,strong) NSURL *videoUrl; @property(nonatomic,strong) MPMoviePlayerController *videoController; trước ứng dụng chụp ảnh ta khai báo Ứng dụng cho phép quay video tương tự -Hai phương thức phép truy cập camera thư viện @interface recordingAndPlaybackViewController : UIViewController Sau bước trên, Ta mã nguồn trông giống này: #import #import "MediaPlayer/MediaPlayer.h" #import "MobileCoreServices/MobileCoreServices.h" @interface recordingAndPlaybackViewController : UIViewController @property(nonatomic,strong) NSURL *videoUrl; @property(nonatomic,strong) MPMoviePlayerController *videoController; - (IBAction)recordingPlayback:(id)sender; @end Để cho phép quay video ta thêm mã lệnh sau: - (IBAction)recordingPlayback:(id)sender { 10 11 12 13 14 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { //tạo đối tượng UIImagePickerController *picker = [[UIImagePickerController alloc] init]; // đăng ký khuôn mẫu picker.delegate = self; //Đăng ký chỉnh sửa picker.allowsEditing = YES; // đăng ký cho phép dùng camera picker.sourceType = UIImagePickerControllerSourceTypeCamera; //đăng ký kiểu liệu picker.mediaTypes=[[NSArray alloc] initWithObjects:(NSString*)kUTTypeMovie, nil]; //phủ view [self presentViewController:picker animated:YES completion:NULL]; 15 } Các bạn theo dõi ứng dụng chụp ảnh trước hiểu câu lệch – nguyên lý links: “http://laptrinhios.vn/huong-dan-xay-dung-mot-may-anh-don-gian-sudung-uiimagepickercontroller/“ Ở ứng dụng chụp ảnh ta không cần báo picker.mediaTypes mặc định cho kUTTypeImage cho phép camera chế độ chụp ảnh Ở muốn quay video Chúng ta phải khai báo mediaTypes kUTTypeMovie Như cho phép camera quay video thành công! Tuy nhiên để kiểm tra kết cần cho phép video chạy Chơi Video mã nguồn: Một người dùng hoàn thành xác nhận để lưu video, ứng dụng tự động phát lại video hình Để thực việc phát lại video, cần thực hiện: Nhận URL video vừa quay được! 2 Bỏ chế độ UIImagePickkerController Phát video cách sử dụng lớp MPMoviePlayerController Tương tự UIImagePickkerViewController camera Video có mảng info[UIImagePickerControllerMediaURL] lưu url video vừa quay Như bạn biết phương pháp didFinishPickingMediaWithInfo gọi xác nhận sử dụng video Khi phải thoát chế độ quay video chuyển sang chế độ xem video - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 10 // dict lưu urlvideo self.videoUrl = info[UIImagePickerControllerMediaURL]; [url addObject:self.videoUrl]; [picker dismissViewControllerAnimated:YES completion:NULL]; self.videoController = [[MPMoviePlayerController alloc] init]; [self.videoController setContentURL:self.videoUrl]; [self.videoController.view setFrame:CGRectMake (0, 0, 320, 460)]; [self.view addSubview:self.videoController.view]; [self.videoController play]; 11 } Use Video-lấy url để chạy video, dismiss để thoát chế độ quay video Khởi tạo đối tượng self.videocontroller để chạy video – Xét url cho Xét chế độ xem Frame, đưa vào view, cho phép play để bắt đầu chơi video Như Quay video chơi lại video Thử biên dịch kiểm tra :thật đáng tiếc simulator camera phải chạy iphone kiểm tra Sử dụng NSNotificationCenter: Giúp đăng ký kiện đối tượng có yêu cầu! Trong didFinishPickingMediaWithInfo ta thêm đoạn mã: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoPlayBackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:self.videoController]; – Đăng ký người quan sát NSNotificationCenter theo dõi video chạy – Khi kết thúc xem video phương thức MPMoviePlayerPlaybackDidFinishNotification trả NSNotificationCenter lắng nghe Gửi đến videoPlayBackDidFinish (kèm đối tượng videocontroller)để xử lý - (void)videoPlayBackDidFinish:(NSNotification *)notification { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Video Playback" message:@"Playback" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; } Khi kết thúc video ta cho phép chạy lại đồng thời đưa thông báo Biên dịch vào chạy thử Iphone!.ok Có phần tiếp theo: Mình giới thiệu cho bạn TabarViewcontroller navigationController! điều hướng cảnh!!! full mã nguồn http://www.mediafire.com/download/xifbu3ceg8q2iyp/videoRecordingAndPlayback.zip