Suggested changes

This commit is contained in:
zisra 2023-03-30 23:21:17 +00:00
parent fac2b50bfc
commit 54d1af0e0a
2 changed files with 21 additions and 2 deletions

View File

@ -88,7 +88,21 @@ export function createCastingStateProvider(
// no picture in picture while casting // no picture in picture while casting
}, },
setPlaybackSpeed(num) { setPlaybackSpeed(num) {
this.setPlaybackSpeed(num); const mediaInfo = new chrome.cast.media.MediaInfo(
state.meta?.meta.meta.id ?? "video",
"video/mp4"
);
(mediaInfo as any).contentUrl = state.source?.url;
mediaInfo.streamType = chrome.cast.media.StreamType.BUFFERED;
mediaInfo.metadata = new chrome.cast.media.MovieMediaMetadata();
mediaInfo.metadata.title = state.meta?.meta.meta.title ?? "";
mediaInfo.customData = {
playbackRate: num,
};
const request = new chrome.cast.media.LoadRequest(mediaInfo);
request.autoplay = true;
const session = ins?.getCurrentSession();
session?.loadMedia(request);
}, },
async setVolume(v) { async setVolume(v) {
// clamp time between 0 and 1 // clamp time between 0 and 1
@ -117,7 +131,7 @@ export function createCastingStateProvider(
movieMeta.title = state.meta?.meta.meta.title ?? ""; movieMeta.title = state.meta?.meta.meta.title ?? "";
const mediaInfo = new chrome.cast.media.MediaInfo( const mediaInfo = new chrome.cast.media.MediaInfo(
state.meta?.meta.meta.id ?? "hello", state.meta?.meta.meta.id ?? "video",
"video/mp4" "video/mp4"
); );
(mediaInfo as any).contentUrl = source?.source; (mediaInfo as any).contentUrl = source?.source;

View File

@ -280,6 +280,10 @@ export function createVideoStateProvider(
state.mediaPlaying.isLoading = false; state.mediaPlaying.isLoading = false;
updateMediaPlaying(descriptor, state); updateMediaPlaying(descriptor, state);
}; };
const ratechange = () => {
state.mediaPlaying.playbackSpeed = player.playbackRate;
updateMediaPlaying(descriptor, state);
};
const fullscreenchange = () => { const fullscreenchange = () => {
state.interface.isFullscreen = !!document.fullscreenElement; state.interface.isFullscreen = !!document.fullscreenElement;
updateInterface(descriptor, state); updateInterface(descriptor, state);
@ -328,6 +332,7 @@ export function createVideoStateProvider(
player.addEventListener("timeupdate", timeupdate); player.addEventListener("timeupdate", timeupdate);
player.addEventListener("loadedmetadata", loadedmetadata); player.addEventListener("loadedmetadata", loadedmetadata);
player.addEventListener("canplay", canplay); player.addEventListener("canplay", canplay);
player.addEventListener("ratechange", ratechange);
fscreen.addEventListener("fullscreenchange", fullscreenchange); fscreen.addEventListener("fullscreenchange", fullscreenchange);
player.addEventListener("error", error); player.addEventListener("error", error);
player.addEventListener( player.addEventListener(