AudioSessionManger is applied to getUserMedia.
authorkeonho07.kim <keonho07.kim@samsung.com>
Tue, 30 Apr 2013 13:57:51 +0000 (22:57 +0900)
committerGerrit Code Review <gerrit2@kim11>
Wed, 1 May 2013 05:43:34 +0000 (14:43 +0900)
[Title] AudioSessionManger is applied to getUserMedia.
[Problem] N_SE-36337
[Cause] N/A
[Solution] Makes getUserMedia's video element to pause() if it got a call.

Change-Id: I88c7ebb6fb7b1a9f3585970c2fb27fde5570f083

Source/WebCore/platform/graphics/MediaPlayer.h
Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp

index c94b4d8..b559f38 100755 (executable)
@@ -430,7 +430,9 @@ public:
     void suspend();
     void resume();
 #endif
-
+#if ENABLE(TIZEN_GSTREAMER_AUDIO)
+    KURL url() const { return m_url; }
+#endif
 private:
     MediaPlayer(MediaPlayerClient*);
     void loadWithNextMediaEngine(MediaPlayerFactory*);
index c807a59..ee69bbe 100755 (executable)
@@ -246,14 +246,17 @@ static ASM_cb_result_t MediaPlayerAudioSessionEventSourcePause(ASM_event_sources
     switch (eventSource) {
     case ASM_EVENT_SOURCE_CALL_START:
     case ASM_EVENT_SOURCE_ALARM_START:
-    case ASM_EVENT_SOURCE_EARJACK_UNPLUG:
     case ASM_EVENT_SOURCE_MEDIA:
     case ASM_EVENT_SOURCE_EMERGENCY_START:
     case ASM_EVENT_SOURCE_OTHER_PLAYER_APP:
     case ASM_EVENT_SOURCE_RESOURCE_CONFLICT:
-        if (player->hasAudio())
-            player->pause();
+        player->pause();
         return ASM_CB_RES_PAUSE;
+    case ASM_EVENT_SOURCE_EARJACK_UNPLUG:
+        if (!player->url().string().contains("camera://")) {
+            player->pause();
+            return ASM_CB_RES_PAUSE;
+        }
     default:
         return ASM_CB_RES_NONE;
     }
@@ -270,6 +273,9 @@ static ASM_cb_result_t MediaPlayerAudioSessionEventSourcePlay(ASM_event_sources_
         if (!player->hasVideo()) {
             player->play();
             return ASM_CB_RES_PLAYING;
+        } else if (player->url().string().contains("camera://")) {
+            player->play();
+            return ASM_CB_RES_PLAYING;
         }
         return ASM_CB_RES_NONE;
     default: