Git Product home page Git Product logo

svelte-plyr's Introduction

Known Vulnerabilities install size npm package version PRs Welcome

svelte-plyr

A Svelte 3 component-wrapper for Plyr.js

This component is released under a MIT license.

Examples: https://github.com/benwoodward/svelte-plyr/blob/master/src/App.svelte

Installation

Install the plugin + required dependencies:

npm install --save svelte-plyr plyr rollup-plugin-postcss node-sass

Add postcss to your rollup.config.js (or webpack.config.js)

import postcss from 'rollup-plugin-postcss';

export default {
	input: 'src/main.js',
	output: {
		sourcemap: true,
		format: 'iife',
		name: 'app',
		file: 'public/build/bundle.js'
	},
	plugins: [
    postcss(),
  ]
};

You may then begin to write a parent component that leverages the <Plyr> component:

components/YoutubePlyr.svelte

<script>
  import { Plyr } from "svelte-plyr";
  export let videoId;

  function logEvent(event) {
    console.log(event)
  }

  let player
</script>

<div class="youtube-plyr">
  <button on:click={() => player.play()}>PLAY</button>
  <button on:click={() => player.pause()}>PAUSE</button>
  <Plyr on:timeupdate={logEvent} bind:player={player}>
    <div class="plyr__video-embed">
      <iframe
        src="https://www.youtube.com/embed/{videoId}?iv_load_policy=3&modestbranding=1&playsinline=1&showinfo=0&rel=0&enablejsapi=1"
        allowfullscreen allowtransparency allow="autoplay">
      </iframe>
    </div>
  </Plyr>
</div>

<style>
.youtube-plyr {
  max-width: 800px;
}
</style>

Props

The <Plyr> component is equipped with all of Plyr's options! Just pass them in as props. Example:

<Plyr autoplay=true muted=false />

Events

The <Plyr /> component can be configured to emit specified events. In this example, the logEvent function is called whenever the plyr.js emits the timeupdate logEvent event.

<script>
  import { Plyr } from "svelte-plyr";

  function logEvent(event) {
    console.log(event)
  }

  let player
  let eventsToEmit = ['timeupdate']
</script>

<Plyr on:timeupdate={logEvent} eventsToEmit={eventsToEmit} bind:player={player}>
  // video embed code omitted
</Plyr>

svelte-plyr's People

Contributors

benaltair avatar benwoodward avatar dependabot[bot] avatar infiniti20 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.