1
私はあなたのビューのボタンを押すと、LEDフラッシュをオンまたはオフにする簡単な小さな懐中電灯アプリで遊んでいます。iPhone 4の懐中電灯アプリの電源が切れても点滅しないようにするにはどうすればよいですか?
これはうまく動作しますが、フラッシュをオフにすると、電源を切る前に一度点滅します。この現象を引き起こす原因は何ですか?
は、ここで適切なコードです:
//
// No_Frills_FlashlightViewController.m
// No Frills Flashlight
//
// Created by Terry Donaghe on 8/9/11.
// Copyright 2011 Tilde Projects. All rights reserved.
//
#import "No_Frills_FlashlightViewController.h"
@implementation No_Frills_FlashlightViewController
@synthesize AVSession;
- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
#pragma mark - View lifecycle
/*
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
[super viewDidLoad];
}
*/
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (IBAction)TurnOnLight:(id)sender {
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
AVSession = [[AVCaptureSession alloc] init];
AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
[AVSession addInput:input];
AVCaptureVideoDataOutput *output = [[AVCaptureVideoDataOutput alloc] init];
[AVSession addOutput:output];
[AVSession beginConfiguration];
[device lockForConfiguration:nil];
[device setTorchMode:AVCaptureTorchModeOn];
[device setFlashMode:AVCaptureFlashModeOn];
[device unlockForConfiguration];
[AVSession commitConfiguration];
[AVSession startRunning];
[self setAVSession:AVSession];
[output release];
}
- (IBAction)TurnOffLight:(id)sender {
[AVSession stopRunning];
[AVSession release];
AVSession = nil;
}
- (IBAction)DoNothing:(id)sender {
}
@end
AVSessionだけのクラスレベルのAVCaptureSession変数です。
はい、これは私がインターネット上で見つけたコードです。私はちょうど遊んでいると物事を把握しようとしています。
関数内の各行でブレークポイントを追加して、ライトをオフにし、フラッシュからの動作を目撃してみてください。この方法では、問題の原因となっている行を確認できます。 –
興味深い。ブレークポイント(メソッドの最初の行)に達する前に、オフボタンをタッチするとすぐに点滅します。 –
は、TurnOffLightを実行した直後に実行されるTurnOffLightメソッドですか、完全に分離されていますか? –