Giter Site home page Giter Site logo

ariselseng / clappr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from clappr/clappr

1.0 2.0 0.0 14.3 MB

:clapper: An extensible media player for the web

Home Page: http://clappr.io

License: BSD 3-Clause "New" or "Revised" License

Shell 0.14% JavaScript 97.13% HTML 0.60% CSS 1.41% ActionScript 0.72%

clappr's Introduction

npm version Build Status Dependency Status Coverage Status



Using the Player

Join the chat at https://gitter.im/clappr/clappr

Add the following script on your HTML:

<head>
  <script type="text/javascript" src="http://cdn.clappr.io/latest/clappr.min.js"></script>
</head>

Now, create the player:

<body>
  <div id="player"></div>
  <script>
    var player = new Clappr.Player({source: "http://your.video/here.mp4", parentId: "#player"});
  </script>
</body>

Supported Formats

Format HLS MP4 MP3 WEBM DASH RTMP JPG/PNG/GIF
IE10 rtmp
IE11 rtmp rtmp
Microsoft Edge ? ? rtmp rtmp ?
Firefox rtmp rtmp rtmp
Chrome rtmp rtmp
Safari rtmp rtmp rtmp
iPhone
iPad
Android rtmp rtmp
WiiU Browser ? rtmp rtmp
PS4 Browser ? rtmp rtmp

rtmp means that the support is made by an external plugin.

External Plugins

Plugin |Status|Compatible with latest Clappr|URL| ---------------|---|---|---|---|--- Thumbnails on seekbar| Ready | Yes | https://github.com/tjenkinson/clappr-thumbnails-plugin Level Selector| Ready | Yes | https://github.com/clappr/clappr-level-selector-plugin 360 videos| Ready | Yes | https://github.com/thiagopnts/video-360 Chromecast| Ready | Yes | https://github.com/clappr/clappr-chromecast-plugin DASH with shaka| Ready | Yes | https://github.com/clappr/dash-shaka-playback RTMP | Ready | Yes | https://github.com/clappr/clappr-rtmp-plugin HLS+P2P | Ready | WIP | http://bem.tv Comments on seekbar| Ready | ? | http://labs.jordane.net/clappr-comment/ Voice control| Ready | ? | https://github.com/flavioribeiro/clappr-speech-control-plugin Dash | WIP | No | https://github.com/shankardevy/clappr-dash-plugin Youtube | Ready | No | https://github.com/towerz/clappr-youtube-playback

Built-in Plugins & Embed Parameters

All parameters listed below shall be added on Clappr.Player object instantiation. Example:

var player = new Clappr.Player({
  source: "http://your.video/here.mp4",
  parameter1: "value1",
  parameter2: "value2",
});
Player Size

You can set the player size setting width and height parameters.

Player Location

You can specify where the player should be attached to using either the parentId, or parent option. parentId should be the id of the element you would like the player to be inserted into, or parent should be set to a reference to a dom element.

Auto Play

Add autoPlay: true if you want the video to automatically play after page load.

Loop

Add loop: true if you want the video to automatically replay after it ends.

Chromeless

Add chromeless: 'true' if you want the player to act in chromeless mode.

Mute

Add mute: true if you want to start player with no sound.

Add mimeType for extension-less url

Add mimeType: "mimetype-for-media" if you need to use a media url without extension.

Configuration persistance

Add persistConfig: false if you don't want to persist player's volume through your videos, by default it saves. These configuration are being saved at user's browser (through localStorage).

Preload

In case you're loading a on demand video (mp4), it's possible to define the way the video will be preloaded according to preload attribute options. Add preload: <type> on embed parameters. By default, Clappr will try to download only video metadata (preload: 'metadata').

HLS Buffer Length

The default behavior for the HLS playback is to keep buffering indefinitely, even on VoD. This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks. To change this behavior, add maxBufferLength: <value> to embed parameters, where value is in seconds.

Google Analytics Plugin

Enable Google Analytics events dispatch (play/pause/stop/buffering/etc) adding your gaAccount. Optionally, pass your favorite trackerName as gaTrackerName. Example:

  var player = new Clappr.Player({
    source: "http://your.video/here.mp4",
		gaAccount: 'UA-44332211-1',
		gaTrackerName: 'MyPlayerInstance'
  });
Control bar colors

Customize control bar colors adding mediacontrol hash. Example:

  var player = new Clappr.Player({
    source: "http://your.video/here.mp4",
    mediacontrol: {seekbar: "#E113D3", buttons: "#66B2FF"}
  });

Result:

Clappr with modified media control colors

I'm sure you can do better than me.

Media Control Auto Hide

If you want to disable media control auto hide, add hideMediaControl: false in your embed parameters.

Hide Volume Bar

When embedded with width less than 320, volume bars are hidden. You can force this behavior for all sizes by adding hideVolumeBar: true.

Watermark

Put watermark: http://url/img.png on your embed parameters to automatically add watermark on your video. Choose corner position by defining position parameter. Positions can be bottom-left, bottom-right, top-left and top-right. Example:

  var player = new Clappr.Player({
    source: "http://your.video/here.mp4",
    watermark: "http://url/img.png", position: 'top-right'
  });
Poster

Define a poster by adding poster: http://url/img.png on your embed parameters. It will appear after video embed, disappear on play and go back when user stops the video.

Stats

Clappr has a native statistics plugin that accounts QoE metrics such playing time, rebuffering time, total rebuffers, etc. Metrics report happens periodically, learn how to access these numbers on Create your own plugin session.

Disable HTML5 Video Context Menu

Add disableVideoTagContextMenu: true to disable the context menu (right click) on the HTML5 video element (in the case where a HTML5 playback is used).

Status

Clappr is under heavy development but production-ready. Feel free to open issues and send us pull requests.

Documentation

You can find it here.

Installing for development

Then enter the project directory and install the dependencies:

npm install

Make your changes and run the tests:

npm test

Build your own version:

npm run build

Check the result on dist/ folder.

Starting a local server:

npm run start

This command will start a HTTP Server on port 8080, you can check a sample page with Clappr on http://localhost:8080/webpack-dev-server/

Guideline to open an issue (bug)

Please, try to follow this to open new bugs (questions, suggestions and others are welcome)

For the issue title: A meaningful title (like: HLS doesn't work at windows 10). Try to avoid helpless title (like: it doesn't work, IE10, bug, problem)

Be sure to:

  • Reproduce the bug at http://cdn.clappr.io/
  • Search for similar open/closed issues on this matter before open a new one.

For the issue body:


Browser: YOUR BROWSER (ex: Chrome Version 46.0.2490.80, Firefox, IE)

OS: YOUR OS (ex: Mac OS 10.11.1, iOS9, android4.5)

Clappr Version: 0.2.25

Steps to reproduce:

  • first step
  • then second step
  • I was expecting X but instead it shows Y

ps: you can attach images, logs or whatever you think might be helpful.


Contributors

The culprits of this project are listed here.

Contributing

In general, we follow the fork-and-pull git workflow:

  1. Fork the repository on GitHub
  2. Commit changes to a branch in your fork
  3. Pull request "upstream" with your changes
  4. Merge changes in to "upstream" repository

⚠️ Be sure to merge the latest from "upstream" before making a pull request.

Sponsor

image

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.