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

win95-media-player-esm

v1.1.1

Published

Back from 1995, and running on your website

Downloads

3

Readme

Please note that open-source maintenance is not my main focus at the moment.

I will not be investing significant effort in the very near future to review and address issues on this repository. However I do want my software to be useable!

If you have an issue that must be resolved for your work, please open a pull request to fix it, and send me a direct email to make sure that I see it. I ignore most messages from GitHub these days.

I'm also happy to help out if you have a question about how to use the library.

My email can be found at the top of this commit.

Keep in mind that I have a full-time job and a personal life as well as other hobbies that have taken priority over open source, so I might not respond immediately. But don't hesitate to follow up after a few days if you think I've missed your email.

Win95 Media Player

A React media player component inspired by the Media Player app that shipped with Windows 95 (one of the early versions of Windows Media Player).

Works on the web, in an Electron app, or anywhere ReactDOM will run!

See it live!

Under the hood we rely on two React component libraries:

install

npm install win95-media-player

quick start

The first thing you need is a working React application. If you don't have one, you can try create-react-app to skip all the annoying parts of setting one up.

After that, adding Win95 Media Player to your app is simple!

Assuming you have this in your html...

<style>
  .player {
    /* width can be anything, this is just a suggestion */
    width: 350px;
  }
</style>
<div id="app"></div>

Just run this JavaScript:

// JavaScript
import React from 'react';
import ReactDOM from 'react-dom';

import { MediaPlayer } from 'win95-media-player';

const playlist = [
  {
    url: 'https://archive.org/download/CC1301_windows_95/CC1301_windows_95_512kb.mp4',
    title: 'Computer Chronicles - Windows 95'
  }
];

ReactDOM.render(
  <MediaPlayer
    className="player"
    playlist={playlist}
    showVideo
    fullscreenEnabled
  />,
  document.getElementById('app')
);

And you should have a working MediaPlayer on your page! It should look something like this.

api

MediaPlayer

A fully-functional media player component. Accepts all the props accepted by MediaPlayerUI and Cassette's PlayerContextProvider

MediaPlayerUI

The UI component used by MediaPlayer. If you're building a more complex media player app with Cassette, you can render this directly inside of a React tree wrapped by a PlayerContextProvider to hook into the surrounding playerContext.

props

| Prop name | Prop type | Default value | Description | | ---------------- | --------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | | getDisplayText | Function | track => track.title | Receives a track object (or undefined if none is active) and returns a string of display text | | showVideo | Boolean | false | A boolean which must be set true to display video | | fullscreenEnabled | Boolean | false | If set true, adds a maximize button to the title bar which will trigger fullscreen mode | | className | String | | An optional CSS class name to pass to the outer window div | | dragHandlerClassName | String | | An optional CSS class name which will added on Window Header | | style | Object | | An optional React style object to pass to the outer window div | | minimizeClickHandler | Function | | Click handler that will be executed when minimze button is clicked | | closeClickHandler | Function | | Click handler that will be executed when close button is clicked |

special thanks

@felixrieseberg's windows95 app allowed me to play around with the real Windows 95 Media Player so I could extract the concept for this project.