@@ -19,7 +19,7 @@ class Player extends React.Component {
1919 super ( props ) ;
2020
2121 this . state = {
22- interval : 500 ,
22+ speed : 2 ,
2323 playing : false ,
2424 building : false ,
2525 } ;
@@ -94,7 +94,8 @@ class Player extends React.Component {
9494 resume ( wrap = false ) {
9595 this . pause ( ) ;
9696 if ( this . next ( ) || wrap && this . props . setCursor ( 1 ) ) {
97- this . timer = window . setTimeout ( ( ) => this . resume ( ) , this . state . interval ) ;
97+ const interval = 4000 / Math . pow ( Math . E , this . state . speed ) ;
98+ this . timer = window . setTimeout ( ( ) => this . resume ( ) , interval ) ;
9899 this . setState ( { playing : true } ) ;
99100 }
100101 }
@@ -115,8 +116,8 @@ class Player extends React.Component {
115116 return true ;
116117 }
117118
118- handleChangeInterval ( interval ) {
119- this . setState ( { interval } ) ;
119+ handleChangeSpeed ( speed ) {
120+ this . setState ( { speed } ) ;
120121 }
121122
122123 handleChangeProgress ( progress ) {
@@ -129,7 +130,7 @@ class Player extends React.Component {
129130 render ( ) {
130131 const { className, file } = this . props ;
131132 const { chunks, cursor } = this . props . player ;
132- const { interval , playing, building } = this . state ;
133+ const { speed , playing, building } = this . state ;
133134
134135 return (
135136 < div className = { classes ( styles . player , className ) } >
@@ -148,16 +149,16 @@ class Player extends React.Component {
148149 onChangeProgress = { progress => this . handleChangeProgress ( progress ) } />
149150 < Button icon = { faChevronRight } reverse primary disabled = { ! this . isValidCursor ( cursor + 1 ) }
150151 onClick = { ( ) => this . next ( ) } />
151- < div className = { styles . interval } >
152+ < div className = { styles . speed } >
152153 Speed
153154 < InputRange
154155 classNames = { {
155156 inputRange : styles . range ,
156157 labelContainer : styles . range_label_container ,
157158 slider : styles . range_slider ,
158159 track : styles . range_track ,
159- } } maxValue = { 2000 } minValue = { 100 } step = { 100 } value = { interval }
160- onChange = { interval => this . handleChangeInterval ( interval ) } />
160+ } } minValue = { 0 } maxValue = { 4 } step = { .5 } value = { speed }
161+ onChange = { speed => this . handleChangeSpeed ( speed ) } />
161162 </ div >
162163 </ div >
163164 ) ;
0 commit comments