@aidenlx/player
Version:
Headless web components that make integrating media on the a web a breeze.
94 lines (93 loc) • 2.34 kB
JavaScript
import "../../chunks/chunk.LNH2V2XS.js";
import { hostRequestQueue, vdsEvent } from "@vidstack/foundation";
class MediaRemoteControl {
constructor(_host) {
this._host = _host;
this._connectedQueue = hostRequestQueue(this._host);
this._logger = false ? new LogDispatcher(this._host) : void 0;
}
play(event) {
this._dispatchRequest("vds-play-request", {
triggerEvent: event
});
}
pause(event) {
this._dispatchRequest("vds-pause-request", {
triggerEvent: event
});
}
mute(event) {
this._dispatchRequest("vds-mute-request", {
triggerEvent: event
});
}
unmute(event) {
this._dispatchRequest("vds-unmute-request", {
triggerEvent: event
});
}
enterFullscreen(event) {
this._dispatchRequest("vds-enter-fullscreen-request", {
triggerEvent: event
});
}
exitFullscreen(event) {
this._dispatchRequest("vds-exit-fullscreen-request", {
triggerEvent: event
});
}
seeking(time, event) {
this._dispatchRequest("vds-seeking-request", {
detail: time,
triggerEvent: event
});
}
seek(time, event) {
this._dispatchRequest("vds-seek-request", {
detail: time,
triggerEvent: event
});
}
changeVolume(volume, event) {
this._dispatchRequest("vds-volume-change-request", {
detail: volume,
triggerEvent: event
});
}
resumeIdling(event) {
this._dispatchRequest("vds-resume-idling-request", {
triggerEvent: event
});
}
pauseIdling(event) {
this._dispatchRequest("vds-pause-idling-request", {
triggerEvent: event
});
}
showPoster(event) {
this._dispatchRequest("vds-show-poster-request", {
triggerEvent: event
});
}
hidePoster(event) {
this._dispatchRequest("vds-hide-poster-request", {
triggerEvent: event
});
}
_dispatchRequest(type, eventInit) {
this._connectedQueue.queue(type, () => {
const request = vdsEvent(type, {
...eventInit,
bubbles: true,
composed: true
});
if (false) {
this._logger?.infoGroup(`\u{1F4E8} dispatching \`${type}\``).labelledLog("Request Event", request).labelledLog("Trigger Event", eventInit.triggerEvent).dispatch();
}
this._host.dispatchEvent(request);
});
}
}
export {
MediaRemoteControl
};