Files
fnx_web/svelte/src/filesystem/viewers/Video.svelte

69 lines
1.6 KiB
Svelte
Raw Normal View History

2020-11-17 23:39:27 +01:00
<script>
import { fs_file_url } from "../FilesystemUtil.js";
import { createEventDispatcher, onMount } from 'svelte'
2020-11-17 23:39:27 +01:00
let dispatch = createEventDispatcher()
export let state;
let player
let media_session = false
// Detect when the song changes
$: update_session_meta(state.base.name)
const update_session_meta = name => {
if (media_session) {
navigator.mediaSession.metadata = new MediaMetadata({
title: name,
artist: "pixeldrain",
album: "unknown",
});
}
}
onMount(() => {
if ('mediaSession' in navigator) {
media_session = true
update_session_meta(state.base.name)
navigator.mediaSession.setActionHandler('play', () => player.play());
navigator.mediaSession.setActionHandler('pause', () => player.pause());
navigator.mediaSession.setActionHandler('stop', () => player.stop());
navigator.mediaSession.setActionHandler('previoustrack', () => dispatch("open_sibling", -1));
navigator.mediaSession.setActionHandler('nexttrack', () => dispatch("open_sibling", 1));
}
})
2020-11-17 23:39:27 +01:00
</script>
<div class="container">
<video
bind:this={player}
2020-11-17 23:39:27 +01:00
class="player"
src={fs_file_url(state.root.id, state.base.path)}
2020-11-17 23:39:27 +01:00
autoplay="autoplay"
controls="controls"
2020-11-18 23:04:01 +01:00
on:ended={() => { dispatch("open_sibling", 1) }}>
2020-11-17 23:39:27 +01:00
<track kind="captions"/>
</video>
</div>
<style>
.container {
position: relative;
display: block;
height: 100%;
width: 100%;
text-align: center;
overflow: hidden;
}
.player {
position: relative;
display: block;
margin: auto;
max-width: 100%;
max-height: 100%;
top: 50%;
transform: translateY(-50%);
2021-09-23 20:38:17 +02:00
box-shadow: 1px 1px 5px var(--shadow_color);
2020-11-17 23:39:27 +01:00
}
</style>