summaryrefslogtreecommitdiff
path: root/animism-align/frontend/app/views/viewer/player/player.container.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2020-08-26 18:01:13 +0200
committerJules Laplace <julescarbon@gmail.com>2020-08-26 18:01:13 +0200
commit4f33c0b38b41550fbe90ba8012cba4ca785dc32e (patch)
tree7dd6aeca1ea16242f515efb42be250c883a3c850 /animism-align/frontend/app/views/viewer/player/player.container.js
parentda76513e9d5c2a0a1660ac321f126d7c79bf6392 (diff)
dont seek too far
Diffstat (limited to 'animism-align/frontend/app/views/viewer/player/player.container.js')
-rw-r--r--animism-align/frontend/app/views/viewer/player/player.container.js41
1 files changed, 40 insertions, 1 deletions
diff --git a/animism-align/frontend/app/views/viewer/player/player.container.js b/animism-align/frontend/app/views/viewer/player/player.container.js
index a2f999d..f783b9b 100644
--- a/animism-align/frontend/app/views/viewer/player/player.container.js
+++ b/animism-align/frontend/app/views/viewer/player/player.container.js
@@ -2,16 +2,55 @@ import React, { Component } from 'react'
import { connect } from 'react-redux'
import actions from 'app/actions'
-import { floatInRange } from 'app/utils'
+import { floatInRange, clamp } from 'app/utils'
import PlayerTranscript from './player.transcript'
import PlayerFullscreen from './player.fullscreen'
class PlayerContainer extends Component {
+ constructor(props) {
+ super(props)
+ this.handleKeyDown = this.handleKeyDown.bind(this)
+ }
componentDidMount() {
// console.log(this.props.sections)
const { sections } = this.props
actions.viewer.setCurrentSection(sections[0], sections[1])
+ document.addEventListener('keydown', this.handleKeyDown)
+ }
+ componentWillUnmount() {
+ document.removeEventListener('keydown', this.handleKeyDown)
+ }
+
+ handleKeyDown(e) {
+ if (document.activeElement !== document.body) {
+ return
+ }
+ const { currentSection, audio } = this.props
+ const { play_ts } = audio
+ let start_ts = 0
+ let end_ts = 0
+ if (currentSection) {
+ start_ts = currentSection.start_ts
+ end_ts = currentSection.end_ts
+ }
+ // console.log(e.keyCode)
+ switch (e.keyCode) {
+ case 32: // spacebar
+ e.preventDefault()
+ actions.audio.toggle()
+ break
+ case 37: // left
+ case 38: // up
+ e.preventDefault()
+ actions.audio.seek(clamp(play_ts - 5.0, start_ts, end_ts))
+ break
+ case 39: // right
+ case 40: // down
+ e.preventDefault()
+ actions.audio.seek(clamp(play_ts + 5.0, start_ts, end_ts))
+ break
+ }
}
componentDidUpdate(prevProps) {