All Projects β†’ moefront β†’ Muse

moefront / Muse

Licence: mit
🎧 All you need is a simple and diligent HTML 5 music player written in React.

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Muse

Openplayerjs
Lightweight HTML5 video/audio player with smooth controls and ability to play VAST/VPAID/VMAP ads
Stars: ✭ 255 (+210.98%)
Mutual labels:  audio, player, html5
Vime
Customizable, extensible, accessible and framework agnostic media player. Modern alternative to Video.js and Plyr. Supports HTML5, HLS, Dash, YouTube, Vimeo, Dailymotion...
Stars: ✭ 1,928 (+2251.22%)
Mutual labels:  audio, player, html5
React Cassette Player
Simple ReactJS HTML5 audio player component built with SVG icons from The Noun Project.
Stars: ✭ 93 (+13.41%)
Mutual labels:  audio, player, html5
React Music Player
🎡 Maybe the best beautiful HTML5 responsive player component for react :)
Stars: ✭ 321 (+291.46%)
Mutual labels:  audio, player, html5
React Native Audio Streaming
iOS & Android react native module to play an audio stream, with background support and media controls
Stars: ✭ 753 (+818.29%)
Mutual labels:  audio, player
Xamarinmediamanager
Cross platform Xamarin plugin to play and control Audio and Video
Stars: ✭ 647 (+689.02%)
Mutual labels:  audio, player
Video.js
Video.js - open source HTML5 & Flash video player
Stars: ✭ 32,478 (+39507.32%)
Mutual labels:  player, html5
Swiftysound
SwiftySound is a simple library that lets you play sounds with a single line of code.
Stars: ✭ 995 (+1113.41%)
Mutual labels:  audio, player
React Player
A React component for playing a variety of URLs, including file paths, YouTube, Facebook, Twitch, SoundCloud, Streamable, Vimeo, Wistia and DailyMotion
Stars: ✭ 5,931 (+7132.93%)
Mutual labels:  audio, player
Somafm Miniplayer
Unofficial player that gives you minimal, background playback of SomaFM channels.
Stars: ✭ 30 (-63.41%)
Mutual labels:  audio, player
Larkplayer
πŸš€Β A lightweight & flexible web player :)
Stars: ✭ 82 (+0%)
Mutual labels:  player, html5
Aplayer
🍭 Wow, such a beautiful HTML5 music player
Stars: ✭ 5,887 (+7079.27%)
Mutual labels:  player, html5
Webaudiofont
Use full GM set of musical instruments to play MIDI and single sounds or effects. Support for reverberation and equaliser. No plugins, no Flash. Pure HTML5 implementation compatible with desktop and mobile browser. See live examples.
Stars: ✭ 600 (+631.71%)
Mutual labels:  audio, player
Hlsjs P2p Engine
Let your viewers become your unlimitedly scalable CDN.
Stars: ✭ 759 (+825.61%)
Mutual labels:  player, html5
Rx Player
DASH/Smooth HTML5 Video Player
Stars: ✭ 600 (+631.71%)
Mutual labels:  player, html5
Youtube Html Js Audio Player
An audio player created with HTML Audio and Javascript πŸš€
Stars: ✭ 39 (-52.44%)
Mutual labels:  player, html5
Pandoraplayer
πŸ…ΏοΈ PandoraPlayer is a lightweight music player for iOS, based on AudioKit and completely written in Swift.
Stars: ✭ 1,037 (+1164.63%)
Mutual labels:  audio, player
Aplay
A Better(Maybe) iOS Audio Stream、Cache、Play Framework
Stars: ✭ 44 (-46.34%)
Mutual labels:  audio, player
Audioplayers
A Flutter plugin to play multiple audio files simultaneously (Android/iOS)
Stars: ✭ 1,042 (+1170.73%)
Mutual labels:  audio, player
Ieasemusic
η½‘ζ˜“δΊ‘ιŸ³δΉη¬¬δΈ‰ζ–Ή
Stars: ✭ 8,572 (+10353.66%)
Mutual labels:  player, mobx

MUSE

Build Status Coverage Status npm npm download devDependencies license built by

MUSE is a simple and diligent HTML5 audio player made with ❀ :)

δΈ­ζ–‡ζ–‡ζ‘£ / Redux build / Old version

Table of Contents

Demo

Have a look at here.

Tech Stack

  • React 16
  • TypeScript
  • MobX
  • mobx-react
  • Stylus

Installation

Install via Package Manager

MUSE is available in npmjs. You can install it by both npm and yarn.

$ yarn add muse-player  # using yarn
$ npm install --save-dev muse-player # using npm

Install via Git

$ git clone https://github.com/moefront/muse
$ cd muse
$ yarn install  # or: npm install

Download ZIP Directly

Click Clone or download then choose Download ZIP, or redirect to release page to download a release version.

Features

  • Build with React.js and Mobx
  • Both Mobx version(main) & Redux version(before 5.2.7)
  • Full lyric support
  • Lyric offset fixing
  • Right-click menu is finally supported
  • Fullscreen mode
  • Middlewares and Custom layouts (new)
  • Responsive design
  • Better mobile side experience
  • ...

Usage

Easily render player for single page


Firstly, import ./dist/assets/muse-player.js to your own page (Stylesheet has been injected in this Javascript file):

<script type="text/javascript" src="./dist/assets/muse-player.js"></script>

We recommend that you import muse-player.js from unpkg, where you can get the latest version of MUSE:

<script src="https://unpkg.com/muse-player/dist/assets/muse-player.js" type="text/javascript"></script>

Secondly, use MUSE.render() method to render player to your page.

PS: If you are migrating from YMPlayer 4 to MUSE, pay attention that the method of using custom tag to render player has been removed. But you can still use MUSE.render() or YMPlayer.render() to render a player:

/**
 * use MUSE.render() or YMPlayer.render() to 
 * render a MUSE Player component on your page.
 *
 * @param data {Array}  Musics' detail
 * @param node {Object} HTML element in which new player will be put.
 * @param opt  {Object} Player options
 *
 * @return {Object}
 */

MUSE.render([{
  title: '',
  artist: '',
  cover: '',
  src: '',
  lyric: '',
  translation: ''     // if you do not need translation, delete this row.
}, {
  // ......
}], document.getElementById('player'));

Generating music JSON from Netease Cloud Music automatically

First have muse-json-generator installed. You can install it from npm. Also you should know the music's Netease Cloud Music ID that you want to add.

$ npm install -g muse-json-generator
$ muse 2333666 id1 id2 ...

Then you will find a playlist.json on your workspace, which contains the details(title, artist, lyric, cover, src, translation) of your target.

For more detail, see https://github.com/moefront/muse-json-generator .


Using MUSE in your own project


You must have muse-player already installed.

in React.js Project with webpack bundling

import React from 'react';
import { render } from 'react-dom';

import { MuseDOM as MUSE } from 'muse-player';

const playList = [{
  // ...
}];

// MUSE.render() will returns a object with React Component and Player ID wrapped
// player { component: ReactComponent, ref: undefined, id }
const player = MUSE.render(playList); 

const node = document.getElementById('app');    // DOM

render(
  <player.component />,
  node
);

RequireJS or other AMD module loader

require(['muse-player'], function(MuseDOM) {
  MuseDOM.render(...);
});

Others

<script text="text/javascript" src="./dist/assets/muse-player.js"></script>

This will export MuseDOM instance to window:

window.MuseDOM.render();

Commands

  • Run server in dev mode: yarn serve
  • Run server in production mode: yarn serve:dist
  • Build a dist: yarn dist

Related Projects

Projects related to MUSE below can help you construct MUSE Player on your site easily. Thanks for their hard working!

Troubleshooting

You can find solutions of most problems on Wiki. If not, please open an issue whenever you are facing a problem, or contact us at [email protected].

Contributing

Both contributing code to this project and telling us your suggestion and ideas are welcomed.

Thanks those who contributed to MUSE Player: @kokororin, @frank-deng.

Developing Docs

You can find a detailed documentation about APIs, methods, specification, etc. on WiKi.

Browser supports

IE Chrome Firefox Opera Safari
IE 10+ βœ” Chrome 24.0+ βœ” Firefox 24.0+ βœ” Opera 15.0+ βœ” Safari 7.0+ βœ”

Todo list

  • [x] Custom layouts full support
  • [ ] Documents for developing (plugins, themes...)

License

Β© 2017 MoeFront Studio, MUSE Player is MIT licensed.

Contributors

Thanks goes to these wonderful people (emoji key):


εŸε€’γ‘γ‚ƒγ‚“

πŸ’» 🎨 πŸ“– πŸ’‘ πŸ€” πŸ‘€ ⚠️

そら

πŸ› πŸ’» πŸ€” πŸ”Œ 🌍

Frank Deng

πŸ› πŸ’» πŸ€”

This project follows the all-contributors specification. Contributions of any kind welcome!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].