代码拉取完成,页面将自动刷新
同步操作将从 zhouws-chn/ZPlay_VideoPlayer 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#ifndef ZFFAUDIO_H
#define ZFFAUDIO_H
#include <QMutex>
#include <QMutexLocker>
#include <QThread>
#include <QList>
#include <QAudioOutput>
extern "C" {
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavformat/version.h>
#include <libavdevice/avdevice.h>
#include <libavutil/time.h>
#include <libavutil/mathematics.h>
#include <libswscale/swscale.h>
#include <libswresample/swresample.h>
}
class ZFFaudio : public QThread {
public:
static ZFFaudio* getInstance();
float GetCurTimeSec() {
return curTimestampSec;
}
void start(Priority = InheritPriority);
void terminate();
void stop();
void init(int sampleRate,
int channel,
int sampleSize);
private:
ZFFaudio();
static QAtomicPointer<ZFFaudio>_instance;
static QMutex _mutex;
/* Thread */
void run() override;
int ToPCM(char *,
AVFrame *);
/* QMEDIA */
bool StartPlay(); // 启动
void PlayAudio(bool isplay); // 暂停
bool Write(const char *data,
int datasize); // 将音频写入
void StopPlay(); // 停止
int GetFree(); // 获取剩余空间
int sampleRate = 44100; // 样本率
int sampleSize = 32; // 样本大小
int channel = 2; ///通道数
/* */
float curTimestampSec = 0.0;
/* Device */
QIODevice *io = NULL;
QAudioOutput *output = NULL;
bool _canBeRun = false;
};
#endif // ZFFAUDIO_H
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。