npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

svelte-video-player

v1.2.5

Published

Basic video player component for svelte apps.

Downloads

2,067

Readme

Svelte Video Player

Basic video player component for svelte, sapper and legacy apps.

Controls are tabbable and respond to key presses (enter/space/arrows) where applicable.

Starting a player will pause previously playing video player instance.

Fullscreen functionality is disabled on iPhone, other than that should function fairly smoothly in both desktop and mobile browsers.

Demo

https://svelte-video-player.netlify.app/

Installation

yarn add svelte-video-player
# OR
npm install svelte-video-player

Props

| Prop name | Type | Default value | Description | | :-------------- | :---------------------------------- | ---------------------- | ----------------------------------------------------------------------------------------------------------- | | width | string | number | 1920 | Real width of video for calculating aspect ratio for responsive design | | height | string | number | 1080 | Real height of video for calculating aspect ratio for responsive design | | poster | string | '' | Absolute or relative URL of poster image | | source | string | string[] | '' | Absolute or relative URL (or array of those) of video source. Supported formats are webm, mp4 and ogg | | controlsHeight | string | '55px' | Height of bottom control bar, rescaling included components | | trackHeight | string | '6px' | Height of playbar and volume slider tracks | | thumbSize | string | '15px' | Size of playbar and volume slider thumb | | centerIconSize | string | '60px' | Size of center icon | | playerBgColor | string | 'black' | Color of player background | | color | string | '#FF3E00' | Main color of control components | | focusColor | string | 'white' | Color of focus outlines | | barsBgColor | string | 'white' | Background color of playbar and volume slider tracks | | iconColor | string | 'white' | Color of button icons | | bufferedColor | string | '#FF9600' | Color of buffered chunks | | borderRadius | string | '8px' | Rounded corner radius of the player. | | skipSeconds | string | number | 5 | Skipping time in seconds | | chunkBars | boolean | false | Display overlay with buffered and played parts of video | | loop | boolean | false | Play video in loop | | controlsOnPause | boolean | true | Show control bar when video is paused | | timeDisplay | boolean | false | Display current time beside playbar |

Usage

If aspect ratio of the video is other than default 16:9 provide width and height props to player for calculating aspect ratio to prevent CLS. Real size of video player will be determined by it's parent element.

Import directly to svelte or sapper apps

See Example App.svelte.

<script>
  import VideoPlayer from 'svelte-video-player';

  const poster = 'https://www.server.com/poster.jpg';
  const source = [
    'https://www.server.com/video.webm',
    'https://www.server.com/video.mp4',
    'https://www.server.com/video.ogv',
  ];
</script>

<VideoPlayer {poster} {source} />;
<VideoPlayer poster="poster_url" source="video_url" />
<VideoPlayer width="500" height="500" poster="./local_poster.jpg" source="./local_video.mp4" loop />

For legacy apps load prebuilt script and stylesheet from unpkg.com

Example: https://codepen.io/meigo-kukk/pen/yLVMZBO

<html>
  <head>
    <link rel="stylesheet" href="https://unpkg.com/svelte-video-player@latest/dist/svelte-video-player.css" />
    <script src="https://unpkg.com/svelte-video-player@latest/dist/svelte-video-player.js"></script>

    <script>
      function initPlayer() {
        let player = new VideoPlayer({
          target: document.getElementById('player'),
          props: {
            poster:
              'https://res.cloudinary.com/animaly/image/upload/c_scale,w_960/v1608783923/ntiiorkrkxba6kmooa4u.gif',
            source:
              'https://res.cloudinary.com/animaly/video/upload/ac_aac,vc_h264/v1608783907/xixhbu5v9aawqqgiafri.mp4',
            controlsHeight: '55px',
            centerIconSize: '60px',
            color: 'deepskyblue',
          },
        });
      }
    </script>
  </head>
  <body onload="initPlayer()" style="background-color:#333">
    <div style="max-width: 600px; margin: 0 auto;">
      <div id="player" />
    </div>
  </body>
</html>