OSDN Git Service

Automated import from //branches/donutburger/...@141598,141598
authorJason Sams <>
Wed, 25 Mar 2009 03:36:57 +0000 (20:36 -0700)
committerThe Android Open Source Project <initial-contribution@android.com>
Wed, 25 Mar 2009 03:36:57 +0000 (20:36 -0700)
camera/libcameraservice/CameraService.cpp

index 851b213..c5c95b0 100644 (file)
@@ -283,8 +283,14 @@ CameraService::Client::~Client()
 #endif
     }
 
-    mMediaPlayerBeep.clear();
-    mMediaPlayerClick.clear();
+    if (mMediaPlayerBeep.get() != NULL) {
+        mMediaPlayerBeep->disconnect();
+        mMediaPlayerBeep.clear();
+    }
+    if (mMediaPlayerClick.get() != NULL) {
+        mMediaPlayerClick->disconnect();
+        mMediaPlayerClick.clear();
+    }
 
     // make sure we tear down the hardware
     mClientPid = IPCThreadState::self()->getCallingPid();
@@ -711,9 +717,6 @@ status_t CameraService::Client::takePicture()
         return INVALID_OPERATION;
     }
 
-    if (mMediaPlayerClick.get() != NULL) {
-        mMediaPlayerClick->start();
-    }
     return mHardware->takePicture(shutterCallback,
                                   yuvPictureCallback,
                                   jpegPictureCallback,
@@ -751,6 +754,10 @@ void CameraService::Client::shutterCallback(void *user)
 
         client->mSurface->registerBuffers(buffers);
     }
+
+    if (client->mMediaPlayerClick.get() != NULL) {
+        client->mMediaPlayerClick->start();
+    }
 }
 
 // picture callback - raw image ready