SoundBand/sync/player.cpp

58 lines
929 B
C++
Raw Normal View History

2017-12-13 22:40:29 +03:00
#include "player.h"
#include <stdio.h>
#include "exaptions.h"
#include <QFile>
#include <QDir>
2017-12-14 10:47:50 +03:00
Player::Player(const QString &bufferFile, QObject *parent, Flags flags):
2017-12-13 22:40:29 +03:00
QMediaPlayer(parent, flags)
{
buffer = bufferFile;
2018-01-09 22:14:54 +03:00
bufferVolume = 0;
2017-12-13 22:40:29 +03:00
}
bool Player::setMediaFromBytes(const QByteArray &array){
QFile f(buffer);
if(!f.open(QIODevice::WriteOnly | QIODevice::Truncate)){
return false;
}
if(array.length() != f.write(array.data(),array.length())){
f.close();
return false;
}
2018-01-09 22:14:54 +03:00
f.close();
2017-12-13 22:40:29 +03:00
2018-01-09 22:14:54 +03:00
setMedia(QUrl::fromLocalFile(QDir("./").absoluteFilePath(buffer)));
2017-12-24 15:23:46 +03:00
2018-01-09 22:14:54 +03:00
return true;
}
2017-12-24 15:23:46 +03:00
2018-01-14 15:29:42 +03:00
void Player::syncBegin(){
2017-12-13 22:40:29 +03:00
2018-01-09 22:14:54 +03:00
bufferVolume = volume();
setVolume(0);
2017-12-17 14:27:21 +03:00
2018-01-09 22:14:54 +03:00
play();
2017-12-17 14:27:21 +03:00
2017-12-13 22:40:29 +03:00
}
2018-01-14 15:29:42 +03:00
void Player::syncEnd(){
2018-01-09 22:14:54 +03:00
2018-01-14 15:29:42 +03:00
if(bufferVolume){
setVolume(bufferVolume);
bufferVolume = 0;
2017-12-17 14:27:21 +03:00
}
2018-01-09 22:14:54 +03:00
}
2017-12-17 14:27:21 +03:00
2018-01-09 22:14:54 +03:00
bool Player::isSynced()const{
return !bufferVolume;
2017-12-17 14:27:21 +03:00
}
2017-12-13 22:40:29 +03:00
Player::~Player(){
}