self.layer = self.timeline.append_layer()
 
+        ges_pipeline = GES.Pipeline()
+        ges_pipeline.set_timeline(self.timeline)
+        self.player = Player(ges_pipeline)
+
     def add_clip(self, clip_path, start_time, duration):
         clip_uri = Gst.filename_to_uri(clip_path)
         asset = GES.UriClipAsset.request_sync(clip_uri)
 
     def play(self):
         self.timeline.commit()
-
-        ges_pipeline = GES.Pipeline()
-        ges_pipeline.set_timeline(self.timeline)
-        Player(ges_pipeline).play()
+        self.player.play()
 
     def save(self, path):
         uri = Gst.filename_to_uri(path)