123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #include "BaseRecordThread.h"
- #include <QDateTime>
- BaseRecordThread::BaseRecordThread(RecordThreadInfo_t& threadInfo)
- : m_threadInfo(threadInfo)
- {
- m_logBase = fmt::format("录音通道: {}:{}", m_threadInfo.cardRoadInfo.strSoundCardName.toStdString(),
- m_threadInfo.cardRoadInfo.roadInfo.nRoadNum);
- }
- BaseRecordThread::~BaseRecordThread()
- {
-
- }
- /* 停止线程 */
- void BaseRecordThread::stopThread()
- {
- m_isRunning.store(false);
-
- }
- /* 获取频率ID */
- RecordThreadInfo_t BaseRecordThread::getThreadInfo()
- {
- return m_threadInfo;
- }
- /* 根据文件大小计算时间长度,单位ms */
- QDateTime BaseRecordThread::previTime(QDateTime& currentTime, uint32_t dataSize)
- {
- int64_t offsetMS = dataSize * 1000 / m_oneSecondSize;
- return currentTime.addMSecs(-offsetMS);
- }
- /*根据当前时间和数据大小向后推算时间 */
- QDateTime BaseRecordThread::nextTime(QDateTime& currentTime, uint32_t dataSize)
- {
- int64_t offsetMS = dataSize * 1000 / m_oneSecondSize;
- return currentTime.addMSecs(offsetMS);
- }
- /* 计算出到下一个整点秒需要去掉多少个字节 */
- uint32_t BaseRecordThread::calculateOffsetToNextSecond(QDateTime& currentTime)
- {
- QDateTime nextSecond = currentTime.addSecs(1);
- nextSecond = nextSecond.addMSecs(-nextSecond.time().msec()); // 去掉毫秒部分
- int64_t offsetMS = nextSecond.toMSecsSinceEpoch() - currentTime.toMSecsSinceEpoch();
- return static_cast<uint32_t>(offsetMS * m_oneSecondSize / 1000); // 转换为字节数
- }
|