Giter VIP home page Giter VIP logo

xterm-player's People

Contributors

actions-user avatar dependabot[bot] avatar forest0 avatar javacs3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

xterm-player's Issues

Refine player UI

  1. UI should be responsive designed to match different window size
  2. Mobile doesn't have to be supported currently
  • space key to toggle play/pause
  • left/right key to seek backward/forward
  • key events should be captured in whole player element level
  • control bar show up when mouse enter in the player
  • control bar fade off when mouse leave the player
  • when the player is paused there should be some hints like a paused overlay tint
  • when the player continue playing from the paused status, the overlay tint should be removed
  • the player width/height should have limit. should not expand as much as possible

Add error UI state

when xterm-player url invalid or remote responding error, UI should show a error notification

Audio support

  1. video/audio must be synced
  2. play/pause/seek
  3. do NOT need to support every browser. most popular browsers must be supported (Chrome, Safari)

Selection will be cleared while playing

Due to current framing strategy, xterm-player will refresh whole terminal if moving from a frame to next frame.

xterm-player/src/Player.ts

Lines 151 to 161 in 2462cdb

const frame = this._queue.frame(now)
if (this._lastframe === frame && now > this._lasttime) {
writeSync(this._term, frame.data(now, this._lasttime))
} else {
this._term.reset()
if (frame.prev) {
writeSync(this._term, frame.prev.snapshot() + frame.data(now))
} else {
writeSync(this._term, frame.data(now))
}
}

Question: How is unicode handled?

Sorry, rather a question than an issue.

Looked at the format of asciinema v2 which looks to be utf8-unicoded.
"it's UTF-8 encoded JSON string, with all non-printable Unicode codepoints encoded as \uXXXX"

Looked thru the code to figure out how this is handled and passed to xterm.write that seems to expect utf16.
If you could point out where this is dealt with I would really appreciate it!

style suggestion

  1. i think change Icons.Pause to Icons.Play when state=="Paused" looks better.
    src/ui/PlayerView.ts
      case 'Paused':
        this._bigButton.style.display = 'block'
        // change icon
        this._bigButton.innerHTML = Icons.Play
        this._spinner.style.display = 'none'
        break
  1. better close rate-setting-box after changed rate
    src/ui/ControlBarView.ts
    addDisposableDomListener(this._playbackRate, 'click', () => {
      this._playbackRateSettingBox.classList.toggle('xp-setting-box-open')
    })
    this._playbackRateItems.forEach(item => {
      addDisposableDomListener(item, 'click', () => {
        this._player.playbackRate = parseFloat(item.dataset['rate'] || '1')
        // add this
        this._playbackRateSettingBox.classList.toggle('xp-setting-box-open')
      })
    })

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.