Skip to content
This repository has been archived by the owner on May 8, 2024. It is now read-only.

Commit

Permalink
feat: add castable-video
Browse files Browse the repository at this point in the history
  • Loading branch information
luwes committed May 19, 2022
1 parent c90bbb0 commit 75cc117
Show file tree
Hide file tree
Showing 7 changed files with 2,369 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/node_modules/
47 changes: 47 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# `is="castable-video"`

Cast your video element to the big screen with ease!

The lightweight `CastableVideo` class extends the native `HTMLVideoElement` API and adds casting functionality to any video element. The API was designed to have the feel of a native browser API like the other screen presentation API's.

This is the simplest way to add a Chromecast support to [Media Chrome](https://github.com/muxinc/media-chrome).


```html
<script src="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1"></script>
<script type="module" src="./castable-video.js"></script>

<video
slot="media"
is="castable-video"
poster="https://image.mux.com/DS00Spx1CV902MCtPj5WknGlR102V5HFkDe/thumbnail.jpg"
src="https://stream.mux.com/DS00Spx1CV902MCtPj5WknGlR102V5HFkDe/high.mp4"
muted
crossorigin
></video>
```

## API

### Methods

- `video.requestCast(options)`
- `CastableVideo.exitCast()`

### Properties

- `CastableVideo.castElement`
- `CastableVideo.castAvailable`

### Events

- `entercast`
- `leavecast`
- `castchange`

e.g. `video.addEventListener('entercast', () => {})`

### Attributes

- `stream-type`: add `<video "stream-type="live">` for live streams.
- `cast-src`: if Chromecast requires a different source than the one loaded.
Loading

0 comments on commit 75cc117

Please sign in to comment.