Tải bản đầy đủ (.pdf) (7 trang)

HƯỚNG dẫn xây DỰNG một máy QUAY và PLAYBACK

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (321.13 KB, 7 trang )

HƯỚNG DẪN XÂY DỰNG MỘT MÁY QUAY VÀ
PLAYBACK
Multimedia rất phổ biến trong cuộc sống hiện đại , Ảnh, video , âm nhạc… Phần trước
chúng ta đã tìm hiểu làm thế nào để xây dựng máy ảnh đơn giản,truy cập thư viện
chung, xem ảnh trong màn hình lớn hơn. Phần này mình sẽ giới thiệu cho các bạn một
máy quay đơn giản và xem lại những gì chúng ta đã quay đươc.
MediaPlayer framework hỗ trợ chúng ta xem lại video. Trong đó có hai phương thức:
AVFoundation – Giúp bạn thiết kế các tính năng tiên tiến như 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ợ chúng ta xử lý tuỳ chỉnh.
MPMoviePlayerController – có giao diện giúp chúng ta chơi nhạc video , tuy nhiên
không thể chỉnh sửa được .
Trong hướng dẫn này, chúng tôi sẽ tập trung vào các MPMoviePlayerController. Giúp
chúng ta chơi video đơn giản .

Mục tiêu:
1. Sử dụng UIImagePickerController để quay video.
2. Sử dụng MPMoviePkayerController để chơi video chúng ta vừa quay xong.
Khởi tạo một Project mới !


Thiết kế giao diện:
Để quay video ta kéo vào một button để cho phép bắt đầu quay!!! đặt tên: Recording


xoá 2 file ViewController .Vào newFile tạo 2 file mới :

đặt tên “recordingAndPlaybackViewController”. Dùng để quản lý view chúng ta vừa tạo
ra.
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!.
1. #import "MediaPlayer/MediaPlayer.h"
2. #import "MobileCoreServices/MobileCoreServices.h"

Để lấy url video chúng ta quay được và đối tượng đại diện để chạy video! Chúng ta
khai báo:
1. @property(nonatomic,strong) NSURL *videoUrl;
2. @property(nonatomic,strong) MPMoviePlayerController *videoController;

như bài trước ứng dụng chụp ảnh ta khai
báo <UIImagePickerControllerDelegate,UINavigationControllerDelegate> Ứng dụng
cho phép quay video cũng tương tự -Hai phương thức để cho phép truy cập camera và
thư viện.
1. @interface recordingAndPlaybackViewController :

UIViewController<UIImagePickerControllerDelegate,UINavigationControllerDelegate>


Sau các bước trên, Ta được mã nguồn trông giống thế này:
1. #import <UIKit/UIKit.h>
2. #import "MediaPlayer/MediaPlayer.h"
3. #import "MobileCoreServices/MobileCoreServices.h"
4. @interface recordingAndPlaybackViewController :

UIViewController<UIImagePickerControllerDelegate,UINavigationControllerDelegate>
5. @property(nonatomic,strong) NSURL *videoUrl;

6. @property(nonatomic,strong) MPMoviePlayerController *videoController;
7. - (IBAction)recordingPlayback:(id)sender;
8. @end

Để cho phép quay video ta thêm mã lệnh sau:
1. - (IBAction)recordingPlayback:(id)sender {
2.
3.
4.
5.
6.
7.
8.
9.
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 dữ liệu

picker.mediaTypes=[[NSArray alloc] initWithObjects:(NSString*)kUTTypeMovie, nil];
//phủ view
[self presentViewController:picker animated:YES completion:NULL];

15. }

Các bạn nếu đã theo dõi ứng dụng chụp ảnh ở bài trước cơ bản hiểu các câu lệch –
nguyên lý. links: “ Ở ứng dụng chụp ảnh ta không cần báo
picker.mediaTypes bởi vì mặc định của nó là cho kUTTypeImage cho phép camera ở
chế độ chụp ảnh . Ở đây chúng ta muốn quay video Chúng ta phải khai báo
mediaTypes là kUTTypeMovie.
Như vậy chúng ta đã cho phép camera quay video thành công!
Tuy nhiên để kiểm tra kết quả chúng ta cần cho phép video đó chạy.
Chơi Video mã nguồn:
Một khi người dùng đã hoàn thành bản và xác nhận để lưu video, ứng dụng sẽ tự động
phát lại video trong màn hình chính. Để thực hiện việc phát lại video, chúng ta cần thực
hiện:
1. Nhận URL của video chúng ta vừa quay được!.


2. Bỏ chế độ UIImagePickkerController.
3. Phát video bằng cách sử dụng các lớp MPMoviePlayerController.
Tương tự UIImagePickkerViewController camera Video chúng ta có
mảng info[UIImagePickerControllerMediaURL] lưu url video vừa quay được.
Như các bạn đã biết phương pháp didFinishPickingMediaWithInfo sẽ được gọi khi
chúng ta xác nhận sử dụng video. Khi đó chúng ta phải thoát chế độ quay video chuyển
sang chế độ xem video.
1. - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary

*)info {

2.
3.
4.
5.
6.
7.
8.
9.
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 nó.
Xét chế độ xem Frame, đưa nó vào view, cho phép play để bắt đầu chơi video.
Như thế chúng ta đã Quay được video và chơi lại video .
Thử biên dịch và kiểm tra :thật đáng tiếc simulator không có camera . chúng ta phải
chạy trên iphone kiểm tra.
Sử dụng NSNotificationCenter:
Giúp chúng ta đăng ký một sự kiện khi đối tượng có một yêu cầu!

Trong didFinishPickingMediaWithInfo ta thêm đoạn mã:
1. [[NSNotificationCenter defaultCenter] addObserver:self
2. selector:@selector(videoPlayBackDidFinish:)
3. name:MPMoviePlayerPlaybackDidFinishNotification
4. 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ả
về .NSNotificationCenter lắng nghe Gửi đến videoPlayBackDidFinish
(kèm đối tượng videocontroller)để xử lý.
1. - (void)videoPlayBackDidFinish:(NSNotification *)notification {
2.
3. UIAlertView *alert = [[UIAlertView alloc]
4. initWithTitle:@"Video Playback" message:@"Playback" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
5. [alert show];
6.
7.
8. }

Khi kết thúc video ta cho phép nó chạy lại đồng thời đưa ra thông báo.
Biên dịch vào chạy thử trên Iphone!.ok
Có gì trong phần tiếp theo:
Mình sẽ giới thiệu cho các bạn TabarViewcontroller và navigationController! điều
hướng các cảnh!!!
full mã nguồn
1. />



×