在做iphone應用程式時,開啟網路攝影機,並進行人機互動操作,怎樣處理呢?
這裡先說一個我們頭兒,用的一種方法。這針對單個應用是比較有用的,就是在***AppDelegate中直接開啟網路攝影機。具體做法是在應用的代理中直接定義一個UIImagePickerViewController的對向然後將其顯示到Window上。具體如下(這裡需要說明,WalkTextViewController是對UIImagePickerViewController的繼承,繼承的目的是為了實現對UIImagePickerViewController上的某些控鍵區的隱藏):
WalkTextAppDelegate.h
@class WalkTextViewController;
@interface WalkTextAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
WalkTextViewController *viewController;
UINavigationController *navigationController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet WalkTextViewController *viewController;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
WalkTextAppDelegate.m
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// Override point for customization after app launch
[window addSubview:viewController.view];
[window addSubview:[navigationController view]];
[window makeKeyAndVisible];
}
這樣就搞定了,當然有些記憶體釋放的問題自己搞定。接著來看在整合中的一種處理方式。同樣這裡我們是用
WalkTextViewController。處理方式與上面的類似,具體是在viewDidLoad中加入如下代碼:
imagePicker = [[WalkTextViewController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.showsCameraControls = NO;
self.navigationController.view.backgroundColor = [UIColor clearColor];
self.view.backgroundColor = [UIColor clearColor];
[[UIApplication sharedApplication].keyWindow addSubview:imagePicker.view];
這裡的
imagePicker是用
WalkTextViewController定義的。
當然還有就是我們可以將做一個view來現實所有的操作並設定其透明度,然後將這個view加入到UIImagePickerViewController定義的對象的view中。
好了,就這樣了。