91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

Qt和FFmpeg的視頻播放器

資源截圖

代碼片段和文件信息

#include?“audioplaythread.h“
#include?
#include?


const?int?BufferSize?=?44100?*?10000;
int?iCurrentRead?=?0;
int?iCurrentWrite?=?0;
char?buffer[BufferSize];

QSemaphore?freeBytes(BufferSize);
QSemaphore?usedBytes;

AudioPlayThread::AudioPlayThread(Qobject?*parent):
????QThread?(parent)
????m_audioOutput(nullptr)
????m_audioOutDevice(nullptr)
????m_buf(nullptr)
????m_index(0)
{
????initializeAudio(QAudioDeviceInfo::defaultOutputDevice());

}

void?AudioPlayThread::updateAudioData(QByteArray?audio)
{
????int?out_buffer_size?=?audio.size();
????if(freeBytes.tryAcquire(out_buffer_size)){

????????memcpy(buffer?+?iCurrentWrite?audio.constData()?out_buffer_size);
????????iCurrentWrite?+=?out_buffer_size;

????????iCurrentWrite?=?iCurrentWrite?%?BufferSize;
????????usedBytes.release(out_buffer_size);
????}

}

void?AudioPlayThread::run()
{
????while?(1)?{

#if?0
????????QByteArray?buffer(32768?0);
????????int?chunks?=?m_audioOutput->bytesFree()?/?m_audioOutput->periodSize();
????????while?(chunks)?{
???????????const?qint64?len?=?m_generator->read(buffer.data()?m_audioOutput->periodSize());
???????????if?(len)
???????????????io->write(buffer.data()?len);
???????????if?(len?!=?m_audioOutput->periodSize())
???????????????break;
???????????--chunks;
????????}
#endif

????????int?chunks?=?m_audioOutput->bytesFree()?/?m_audioOutput->periodSize();
????????while?(chunks)?{
????????????int?len?=?m_audioOutput->periodSize();
????????????if(usedBytes.tryAcquire(len)){




????????????????m_audioOutDevice->write(buffer?+?iCurrentRead?len);

????????????????iCurrentRead?+=?len;

????????????????iCurrentRead?=?iCurrentRead?%?BufferSize;
????????????????freeBytes.release();
????????????}

???????????--chunks;
????????}

????}
}

void?AudioPlayThread::initializeAudio(const?QAudioDeviceInfo?&deviceInfo)
{
????if(m_audioOutput){
????????m_audioOutput->stop();
????????delete??m_audioOutput;
????????m_audioOutput?=?nullptr;
????}

????if(m_audioOutDevice){
????????m_audioOutDevice->close();
????????delete??m_audioOutDevice;
????????m_audioOutDevice?=?nullptr;
????}


????QAudioFormat?format;
????format.setSampleRate(44100);
????format.setChannelCount(2);
????format.setSampleSize(16);
????format.setCodec(“audio/pcm“);
????format.setByteOrder(QAudioFormat::LittleEndian);
????format.setSampleType(QAudioFormat::SignedInt);

????if?(!deviceInfo.isFormatSupported(format))?{
????????qWarning()?<????????format?=?deviceInfo.nearestFormat(format);
????}

????m_audioOutput?=?new?QAudioOutput(deviceInfo?format);

????m_audioOutDevice?=?m_audioOutput->start();

//????m_pcmStream?=?new?PcmStream();
//????m_pcmStream->start();

????int?bf?=?m_audioOutput->bytesFree();
????if(!m_buf){
????????m_buf?=?new?char[bf?*?2000];
????}

????memset(m_buf?0?bf?*?2000);
????m_index?=?0;
}



?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件????????270??2019-08-27?21:43??LocalPlayer\.gitignore

?????文件????????746??2021-01-06?17:14??LocalPlayer\.qmake.stash

?????文件???????2880??2019-08-27?21:43??LocalPlayer\audioplaythread.cpp

?????文件????????534??2019-08-27?21:43??LocalPlayer\audioplaythread.h

?????文件?????510864??2021-01-06?17:14??LocalPlayer\audioplaythread.o

?????文件??????10248??2021-01-26?16:50??LocalPlayer\avdemuxthread.cpp

?????文件???????1025??2021-01-11?11:17??LocalPlayer\avdemuxthread.h

?????文件?????640424??2021-01-08?18:19??LocalPlayer\avdemuxthread.o

?????文件???????3629??2021-01-12?18:23??LocalPlayer\avmessagequeue.cpp

?????文件???????1391??2021-01-12?16:50??LocalPlayer\avmessagequeue.h

?????文件????????854??2021-01-08?17:04??LocalPlayer\avplayer.cpp

?????文件????????380??2019-08-27?21:43??LocalPlayer\avplayer.h

?????文件?????534152??2021-01-08?18:18??LocalPlayer\avplayer.o

?????文件???????2571??2021-01-12?16:53??LocalPlayer\framequeue.cpp

?????文件???????1106??2021-01-12?16:48??LocalPlayer\framequeue.h

?????文件????????637??2021-01-08?16:56??LocalPlayer\imagedispaly.cpp

?????文件????????332??2019-08-27?21:43??LocalPlayer\imagedispaly.h

?????文件?????824600??2021-01-08?16:56??LocalPlayer\imagedispaly.o

?????文件??????35149??2019-08-27?21:43??LocalPlayer\LICENSE

?????文件????????360??2021-01-26?16:50??LocalPlayer\main.cpp

?????文件?????814296??2021-01-08?18:18??LocalPlayer\main.o

?????文件???????1682??2019-08-27?21:43??LocalPlayer\mainwindow.cpp

?????文件????????463??2019-08-27?21:43??LocalPlayer\mainwindow.h

?????文件?????877872??2021-01-06?17:14??LocalPlayer\mainwindow.o

?????文件???????1973??2019-08-27?21:43??LocalPlayer\mainwindow.ui

?????文件??????35986??2021-01-06?17:14??LocalPlayer\Makefile

?????文件???????4817??2021-01-08?18:18??LocalPlayer\moc_avdemuxthread.cpp

?????文件?????578704??2021-01-08?18:18??LocalPlayer\moc_avdemuxthread.o

?????文件???????2565??2021-01-08?18:18??LocalPlayer\moc_avplayer.cpp

?????文件?????688552??2021-01-08?18:18??LocalPlayer\moc_avplayer.o

............此處省略14個文件信息

評論

共有 條評論