neverlink / kaleidoscope Goto Github PK
View Code? Open in Web Editor NEWmodern, feature-rich video player
modern, feature-rich video player
Create a window.volumeLevel which is used as a starting value when creating any player
Occurs only when changing radically.
Could be built over #2
Video/MP3 Audio:
Gapless audio formats:
To be used with a separate region to attain video trimming functionality
https://www.electronjs.org/docs/latest/api/desktop-capturer
https://developer.mozilla.org/en-US/docs/Web/API/MediaStream
https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/captureStream
Seems to happen when opening new videos with an instance already running, some player is either not killed off or the event attached to it keeps running
Makes more sense and will fix some bugs when switching media source
Requires #9 to be implemented
Title, to replace preferences.json
Set start and end times via keybinds
e.g setInterval updates progress bar every 100ms to attain smoothness, timestamp gets updated every 10 loops
Requires #16 and frameless window
* {
user-select: none;
-webkit-app-region: drag;
}
Override the default orientation for a video if a certain filename keyword is detected
myvideo-horizontal.mp4
will display the video horizontally, even if the video in reality is rendered vertically.Video / Audio Waveform
Audio
Youtube-like controls to seek through
Keyup
gets called after keydown
resulting in two event calls for the same keybind trigger
Preserve the last closed player and default to it if the event is not triggered
Adding 30px (current title bar height) to window-resize event does not solve this, a gap becomes present above the video
Get video.webkitDecodedFrameCount
after first second, divide by currentTime and round the result
https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28#get-the-latest-release
Currently updates as often as possible which is clunky.
Possibly create a linear animation with duration equal to (currentTime - duration) * playbackRate
Might require a custom slider element (currently using <input type=range>
). Such an element would be useful for other features anyway
Extends #29
Deprecate preferences.json
Add flags like:
isFirstLaunch
- whether to show welcome screen with helpful informationcheckForUpdates
- on launch, ping Gitub for new releasesallowSingleInstanceOnly
- to replace the current session or open a new playerUpdate/log the last volume level, keybind preferences, etc.
Intended for large files
console.log(mainWindow.webContents.getOwnerBrowserWindow().getBounds());
let display = screen.getPrimaryDisplay();
let screenX = parseInt(display['size']['width'] * display['scaleFactor']);
let screenY = parseInt(display['size']['height'] * display['scaleFactor']);
let windowSize = mainWindow.getSize()
windowX = windowSize[0];
windowY = windowSize[1];
// logic to decide splitscreen direction
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.