Slider can moved when recording paused or stoped

This commit is contained in:
Atlante45 2014-09-24 16:19:47 -07:00
parent f536e33d13
commit 75dc26c9ff
3 changed files with 20 additions and 16 deletions

View file

@ -159,9 +159,7 @@ function updateTimer() {
if (MyAvatar.isRecording()) {
slider.pos = 1.0;
} else if (!MyAvatar.isPlaying) {
slider.pos = 0.0;
} else {
} else if (MyAvatar.playerLength() > 0) {
slider.pos = MyAvatar.playerElapsed() / MyAvatar.playerLength();
}
@ -283,9 +281,9 @@ function mousePressEvent(event) {
toolBar.setAlpha(ALPHA_ON, saveIcon);
}
}
} else if (MyAvatar.isPlaying() &&
slider.x < event.x < slider.x + slider.w &&
slider.y < event.y < slider.y + slider.h) {
} else if (MyAvatar.playerLength() > 0 &&
slider.x < event.x && event.x < slider.x + slider.w &&
slider.y < event.y && event.y < slider.y + slider.h) {
isSliding = true;
slider.pos = (event.x - slider.x) / slider.w;
MyAvatar.setPlayerTime(slider.pos * MyAvatar.playerLength());
@ -293,14 +291,12 @@ function mousePressEvent(event) {
}
var isSliding = false;
function mouseMoveEvent(event) {
if (isSliding) {
slider.pos = (event.x - slider.x) / slider.w;
if (slider.pos < 0.0) {
if (slider.pos < 0.0 || slider.pos > 1.0) {
MyAvatar.stopPlaying();
slider.pos = 0.0;
} else if (slider.pos > 1.0) {
slider.pos = 1.0;
}
MyAvatar.setPlayerTime(slider.pos * MyAvatar.playerLength());
}

View file

@ -96,8 +96,6 @@ void AudioInjector::injectAudio() {
timer.start();
int nextFrame = 0;
_currentSendPosition = 0;
int numPreAudioDataBytes = injectAudioPacket.size();
bool shouldLoop = _options.getLoop();

View file

@ -257,9 +257,14 @@ void Player::setCurrentFrame(int currentFrame) {
_currentFrame = currentFrame;
_timerOffset = _recording->getFrameTimestamp(_currentFrame);
_timer.start();
setAudionInjectorPosition();
if (isPlaying()) {
_timer.start();
setAudionInjectorPosition();
} else {
_isPaused = true;
_pausedFrame = currentFrame;
}
}
void Player::setCurrentTime(qint64 currentTime) {
@ -298,9 +303,14 @@ void Player::setCurrentTime(qint64 currentTime) {
_currentFrame = lowestBound;
_timerOffset = _recording->getFrameTimestamp(lowestBound);
_timer.start();
setAudionInjectorPosition();
if (isPlaying()) {
_timer.start();
setAudionInjectorPosition();
} else {
_isPaused = true;
_pausedFrame = lowestBound;
}
}
void Player::setAudionInjectorPosition() {