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の上と上記作品のために
お返事ありがとうございます。私は1つの明確化が私をクリアしてください。トーチライトをオンにすると、それが現場に現われるか、カメラのスクリーンが選択されるとライトが現れます。 AVCaptureDeviceタイプをVideo to Textに変更しました。これは仕事ですか?ありがとう。 – Gopinath
私はあなたのコードではカメラ(UIImagePickerController)を使用する必要はないと思います。これは正しいです。私を助けてください。ありがとう。 – Gopinath
はい、iPhone4では、これはカメラ画面を表示せずに機能します – Denis