2011-12-20 14 views
0

私はiPhoneのアプリのトーチライトのスイッチのために、この下のコードを使用しています。それは正常に動作します。問題は、ボタンを押すとトーチモードが「オン」に変更されますが、トーチライトはユーザーがカメラ画面に入ったときにのみ表示されます。カメラの画面を使わずにトーチライトをオンにしたい誰も私を導くことができますか?私が間違っているところを教えてください。ここに私のコード、iPhoneでカメラ/ビデオモードを使用せずにトーチライトを使用する方法は?

captureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; 
    if (captureDevice.torchMode == AVCaptureTorchModeOff) 
    { 
     AVCaptureSession *session = [[AVCaptureSession alloc] init]; 
     [session beginConfiguration]; 

     [captureDevice lockForConfiguration:nil]; 
     [captureDevice setTorchMode:AVCaptureTorchModeOn]; 
     [captureDevice unlockForConfiguration]; 

     [session commitConfiguration]; 
     [session startRunning]; 

     [self setTorchSession:session]; 
     [session release]; 
    } 
    else 
    { 
     [torchSession stopRunning]; 
     [captureDevice setTorchMode:AVCaptureTorchModeOff]; 
    } 

これはTorch Lightの正しいコードですか?私を助けてください。前もって感謝します。私は

- (void) internal_setFlashOn: (BOOL) turnOn { 
    AVCaptureDevice *theDevice = self.captureDevice; 

    if ([theDevice hasTorch]) { 
    [theDevice lockForConfiguration: nil]; 
    AVCaptureTorchMode currentMode = [theDevice torchMode]; 
    BOOL isAlreadyTurnedOn = (AVCaptureTorchModeOn == currentMode); 
    if (isAlreadyTurnedOn != turnOn) { 
     [theDevice setTorchMode: turnOn? AVCaptureTorchModeOn: AVCaptureTorchModeOff]; 
    } 

    [theDevice unlockForConfiguration]; 
    } 
} 

- (AVCaptureDevice *) captureDevice { 
    if (nil == internal_captureDevice) { 
    internal_captureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; 
    [internal_captureDevice retain]; 
    } 
    return internal_captureDevice; 
} 

これはiPhone4の上と上記作品のために

答えて

2

このコードは動作します。

+0

お返事ありがとうございます。私は1つの明確化が私をクリアしてください。トーチライトをオンにすると、それが現場に現われるか、カメラのスクリーンが選択されるとライトが現れます。 AVCaptureDeviceタイプをVideo to Textに変更しました。これは仕事ですか?ありがとう。 – Gopinath

+0

私はあなたのコードではカメラ(UIImagePickerController)を使用する必要はないと思います。これは正しいです。私を助けてください。ありがとう。 – Gopinath

+0

はい、iPhone4では、これはカメラ画面を表示せずに機能します – Denis

関連する問題