def METHOD_NAME(self, audio_sink, buffer_position):
    '''Sets up the new audiosink and syncs it'''
    self.add(audio_sink)
    audio_sink.sync_state_with_parent()
    self.identity.link(audio_sink)
    if buffer_position is not None:
        # buffer position is the output from get_position. If set, we
        # seek to that position.
        # TODO: this actually seems to skip ahead a tiny bit. why?
        # Note! this is super important in paused mode too, because when
        #       we switch the sinks around the new sink never goes into
        #       the paused state because there's no buffer. This forces
        #       a resync of the buffer, so things still work.
        seek_event = Gst.Event.new_seek(
            1.0,
            Gst.Format.TIME,
            Gst.SeekFlags.FLUSH,
            Gst.SeekType.SET,
            buffer_position[1],
            Gst.SeekType.NONE,
            0,
        )
        self.send_event(seek_event)
    self.audio_sink = audio_sink