UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

43 lines (41 loc) • 1.06 kB
function createPlayerEvents(read, updateIntervalMs) { var listeners = /* @__PURE__ */ new Set(); var timer = null; function emit() { var status = read(); listeners.forEach(function(listener) { return listener(status); }); } function stop() { if (timer !== null) { clearInterval(timer); timer = null; } } return { add(event, listener) { if (event !== "playbackStatusUpdate") { throw new Error("AudioPlayer.addListener: expected 'playbackStatusUpdate'"); } if (typeof listener !== "function") { throw new Error("AudioPlayer.addListener: expected a listener function"); } listeners.add(listener); if (timer === null) timer = setInterval(emit, updateIntervalMs); queueMicrotask(function() { if (listeners.has(listener)) listener(read()); }); return { remove: function remove() { listeners.delete(listener); if (listeners.size === 0) stop(); } }; }, removeAll() { listeners.clear(); stop(); } }; } export { createPlayerEvents }; //# sourceMappingURL=events.native.js.map