def METHOD_NAME(self):
    self._tap = Quartz.CGEventTapCreate(
        Quartz.kCGSessionEventTap, # Session level is enough for our needs
        Quartz.kCGHeadInsertEventTap, # Insert wherever, we do not filter
        # Active, to swallow the play/pause event is enough
        Quartz.kCGEventTapOptionDefault,
        # NSSystemDefined for media keys
        Quartz.CGEventMaskBit(NSSystemDefined),
        self._event_tap,
        None
    )
    # the above can fail
    if self._tap is None:
        self._event.set()
        return
    self._loop = Quartz.CFRunLoopGetCurrent()
    # add an observer so we know when we can stop it
    # without a race condition
    self._observ = Quartz.CFRunLoopObserverCreate(
        None, Quartz.kCFRunLoopEntry, False, 0, self._loop_start, None)
    Quartz.CFRunLoopAddObserver(
        self._loop, self._observ, Quartz.kCFRunLoopCommonModes)
    # Create a runloop source and add it to the current loop
    self._runLoopSource = Quartz.CFMachPortCreateRunLoopSource(
        None, self._tap, 0)
    Quartz.CFRunLoopAddSource(
        self._loop,
        self._runLoopSource,
        Quartz.kCFRunLoopDefaultMode
    )
    # Enable the tap
    Quartz.CGEventTapEnable(self._tap, True)
    # runrunrun
    Quartz.CFRunLoopRun()