1 Star 0 Fork 7

sqzz/ZPlay_VideoPlayer

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
zffaudio.h 1.59 KB
一键复制 编辑 原始数据 按行查看 历史
#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
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/sqzzz/ZPlay_VideoPlayer.git
[email protected]:sqzzz/ZPlay_VideoPlayer.git
sqzzz
ZPlay_VideoPlayer
ZPlay_VideoPlayer
master

搜索帮助