         
         if !interfaceCreated, let backgroundAudioUrl = nodeStyle?.backgroundAudio?.url {
             let audioPlayerItem = AVPlayerItem(asset: AVAsset(url: backgroundAudioUrl))
+            backgroundAudioDidFinishPlayingObserver = NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: audioPlayerItem, queue: nil, using: { (_) in
+                DispatchQueue.main.async {
+                    self.backgroundAudioPlayer?.seek(to: kCMTimeZero)
+                    self.backgroundAudioPlayer?.play()
+                }
+            })
+            
             backgroundAudioPlayer = AVPlayer(playerItem: audioPlayerItem)
             backgroundAudioPlayer?.play()
         }

        if let observer = backgroundVideoDidFinishPlayingObserver {
            NotificationCenter.default.removeObserver(observer)
            backgroundVideoDidFinishPlayingObserver = nil
        }
        
        backgroundVideoPlayerViewController?.willMove(toParentViewController: nil)

    private var shouldLaunchExtrasObserver: NSObjectProtocol?
    
    private var backgroundAudioPlayer: AVPlayer?
    private var backgroundAudioDidFinishPlayingObserver: NSObjectProtocol?
    
    private var backgroundVideoLastTimecode = 0.0
    private var backgroundVideoPreviewImageView: UIImageView?
