Я делаю приложение для фонарика, в котором мне нужно постоянно использовать светодиод камеры при нажатии кнопки ВКЛ и выключать его при нажатии той же кнопки. Я следил за этой статьей Включение светодиода с помощью видеокамеры с помощью Reflection. Операция ВКЛ/ВЫКЛ работает нормально только один раз. Кодекс такой:
private VideoCamera _videoCamera;
private VideoCameraVisualizer _videoCameraVisualizer;
bool _isFlashOff = true;
private void FlashButton_Click(object sender, RoutedEventArgs e)
{
try
{
if (_isFlashOff)
{
_isFlashOff = false;
// Check to see if the camera is available on the device.
if (PhotoCamera.IsCameraTypeSupported(CameraType.Primary))
{
// Use standard camera on back of device.
_videoCamera = new VideoCamera();
// Event is fired when the video camera object has been initialized.
_videoCamera.Initialized += VideoCamera_Initialized;
// Add the photo camera to the video source
_videoCameraVisualizer = new VideoCameraVisualizer();
_videoCameraVisualizer.SetSource(_videoCamera);
}
}
else
{
_isFlashOff = true;
_videoCamera.StopRecording();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void VideoCamera_Initialized(object sender, EventArgs e)
{
_videoCamera.LampEnabled = true;
_videoCamera.StartRecording();
}
Поскольку не было реализации метода StopRecording в классе VideoCamera, как указано в статье: Включение светодиода видеокамерой с помощью Reflection . Я сделал функцию как:
public void StopRecording()
{
// Invoke the stop recording method on the video camera object.
_videoCameraStopRecordingMethod.Invoke(_videoCamera, null);
}
Проблема в том, что когда я снова нажимаю кнопку ON, "Exception" выдается как "TargetInvocationException". Я не могу понять проблему, которая вызывает исключение. Правильно ли работает функция StopRecording()..??
_videoCameraStopRecordingMethod
? - person Kevin Gosse   schedule 28.08.2012