         self.commandDelegate.sendPluginResult(pluginResult, callbackId:self.callbackId)
     }
     
-    func createVideoView(params: VideoLayoutParams) -> RTCEAGLVideoView {
-        let frame = CGRectMake(
-            CGFloat(params.x + self.videoConfig!.container.x),
-            CGFloat(params.y + self.videoConfig!.container.y),
-            CGFloat(params.width),
-            CGFloat(params.height)
-        )
-        
-        let view = RTCEAGLVideoView(frame: frame)
+    func createVideoView(params: VideoLayoutParams? = nil) -> RTCEAGLVideoView {
+        var view: RTCEAGLVideoView
+        
+        if params != nil {
+            let frame = CGRectMake(
+                CGFloat(params!.x + self.videoConfig!.container.x),
+                CGFloat(params!.y + self.videoConfig!.container.y),
+                CGFloat(params!.width),
+                CGFloat(params!.height)
+            )
+            
+            view = RTCEAGLVideoView(frame: frame)
+        } else {
+            view = RTCEAGLVideoView()
+        }
+        
         view.userInteractionEnabled = false
         
         self.webView.addSubview(view)

            return
        }
        
        // add a small video view as it will be resized
        // and re-positioned in refreshVideoContainer
        let videoView = createVideoView(VideoLayoutParams(
            x: 100,
            y: 100,
            width: 100,
            height: 100
        ))
        
        videoView.videoTrack = videoTrack
        self.remoteVideoViews.append(videoView)

                        )
                    } else {
                        // otherwise, create the local video view
                        self.localVideoView = self.createVideoView(params: params)
                        self.localVideoView?.videoTrack = self.localVideoTrack!
                    }
                }
