if (!m_mediaRecorder->prepare()) {
emit error(QMediaRecorder::FormatError, QLatin1String("Unable to prepare the media recorder."));
- setStatus(QMediaRecorder::UnloadedStatus);
+ restartViewfinder();
return false;
}
if (!m_mediaRecorder->start()) {
emit error(QMediaRecorder::FormatError, QLatin1String("Unable to start the media recorder."));
- setStatus(QMediaRecorder::UnloadedStatus);
+ restartViewfinder();
return false;
}
updateDuration();
m_elapsedTime.invalidate();
- if (m_cameraSession) {
- m_cameraSession->camera()->reconnect();
- // Viewport needs to be restarted
- m_cameraSession->camera()->startPreview();
- m_cameraSession->setReadyForCapture(true);
- }
-
m_mediaRecorder->release();
delete m_mediaRecorder;
m_mediaRecorder = 0;
+ if (m_cameraSession) {
+ // Viewport needs to be restarted after recording
+ restartViewfinder();
+ }
+
if (!error) {
// if the media is saved into the standard media location, register it
// with the Android media scanner so it appears immediately in apps
m_resolutionDirty = false;
}
+void QAndroidCaptureSession::restartViewfinder()
+{
+ m_cameraSession->camera()->reconnect();
+ m_cameraSession->camera()->startPreview();
+ m_cameraSession->setReadyForCapture(true);
+}
+
void QAndroidCaptureSession::updateDuration()
{
if (m_elapsedTime.isValid())