Files
Yosuga/src/Handle/DataObjectHandle/Inc/AudioDataHandle.h
T
Misaki c32f085732 1. 稍微重构了一下项目代码结构,使其更加合理
2. 重构了音频播放类,简化其接口,并支持流式wav音频播放
3. 增加了对流式音频数据的处理类
4. 增加了对GUI自动化操作的处理类
2026-01-31 23:03:22 +08:00

36 lines
909 B
C++

//
// Created by misaki on 2026/1/30.
//
#pragma once
#include <QObject>
#include <QMutex>
#include "AudioDataTransferObject.h"
class AudioDataHandle final : public QObject
{
Q_OBJECT
Q_DISABLE_COPY(AudioDataHandle) // 禁用拷贝
private:
/**
* 构造函数私有化
* @param parent
*/
explicit AudioDataHandle(QObject *parent = nullptr); // 并不将本模块挂在对象树当中,因为本模块为单例类,内存自行管理
static QScopedPointer<AudioDataHandle> m_instance; // 单例类
static QMutex m_mutex;
private slots:
// 业务接收槽函数,当获取到音频数据包时,进行解析并播放
void onAudioPacketReceived(const AudioDataTransferObject& packet);
public:
// 单例访问点
static AudioDataHandle *getInstance();
// 显式销毁
static void destroy();
~AudioDataHandle() override;
};