Demo::Demo(QWidget *parent) : QMainWindow(parent), ui(new Ui::Demo) { ui->setupUi(this); //create pointers QJFastFIRFilter *fastfir; QJSlowFIRFilter *slowfir; //create fast fir LPF fastfir = new QJFastFIRFilter(this); fastfir->setKernel(QJFilterDesign::LowPassHanning(800,48000,1001)); //create slow fir LPF slowfir = new QJSlowFIRFilter(this); slowfir->setKernel(QJFilterDesign::LowPassHanning(800,48000,1001)); //make some data QVector<kffsamp_t> buf; buf.resize(48000*10); //time slow fir timer.start(); slowfir->Update(buf); nMilliseconds = timer.elapsed(); ui->plainTextEdit->appendPlainText(((QString)"Slow FIR took %1 ms for %2 double samples with a kernel of 1001 samples").arg(nMilliseconds).arg(buf.size())); //time fast fir timer.start(); fastfir->Update(buf); nMilliseconds = timer.elapsed(); ui->plainTextEdit->appendPlainText(((QString)"Fast FIR took %1 ms for %2 double samples with a kernel of 1001 samples").arg(nMilliseconds).arg(buf.size())); //use the fast fir to LPF some random samples and output them to the sound card ui->plainTextEdit->appendPlainText("Outputting 800Hz low pass filtered random samples to the soundcard using the fast fir"); QAudioFormat format; format.setChannelCount(1); format.setCodec("audio/pcm"); format.setSampleRate(48000); format.setSampleSize(16); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::SignedInt); generator = new Generator(format, this); QAudioOutput *audiooutput = new QAudioOutput(format, this); generator->start(); audiooutput->start(generator); }
void tst_QAudioFormat::checkByteOrder() { QAudioFormat audioFormat; audioFormat.setByteOrder(QAudioFormat::LittleEndian); QVERIFY(audioFormat.byteOrder() == QAudioFormat::LittleEndian); audioFormat.setByteOrder(QAudioFormat::BigEndian); QVERIFY(audioFormat.byteOrder() == QAudioFormat::BigEndian); }
void tst_QAudioFormat::checkByteOrder() { QAudioFormat audioFormat; audioFormat.setByteOrder(QAudioFormat::LittleEndian); QVERIFY(audioFormat.byteOrder() == QAudioFormat::LittleEndian); QTest::ignoreMessage(QtDebugMsg, "LittleEndian"); qDebug() << QAudioFormat::LittleEndian; audioFormat.setByteOrder(QAudioFormat::BigEndian); QVERIFY(audioFormat.byteOrder() == QAudioFormat::BigEndian); QTest::ignoreMessage(QtDebugMsg, "BigEndian"); qDebug() << QAudioFormat::BigEndian; }
void Airplay :: start() { // read the airplay pipe file.setFileName("/tmp/shairport-sync-pipe"); file.open(QIODevice::ReadOnly); // set the audio format // https://github.com/mikebrady/shairport-sync/issues/126 // Playing raw data 'stdin' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo QAudioFormat format; format.setSampleRate(44100); // rate format.setChannelCount(2); // stereo format.setCodec("audio/pcm"); // raw format.setSampleSize(16); // 16 bit format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::SignedInt); // check format is supported if (!deviceInfo.isFormatSupported(format)) qWarning() << "Output format not supported"; // connect signals audio = new QAudioOutput(deviceInfo, format, this); connect(audio, SIGNAL(stateChanged(QAudio::State)), this, SLOT(handleStateChange(QAudio::State))); // start playing audio->start(&file); }
BeatController::BeatController(QAudioDeviceInfo inputDevice, uint16_t recordSize, uint32_t sampleRate, uint16_t m_bandCount, QObject *parent) : QObject(parent) { m_RecordSize = recordSize; m_Buffer = new SoundBuffer(recordSize); m_Analyser = new BeatAnalyser(m_bandCount,sampleRate,recordSize); m_inputDevice = QAudioDeviceInfo(inputDevice); m_FFT = new FFT(recordSize); m_FFT->setSoundBuffer(m_Buffer); m_Analyser->setFFT(m_FFT); QAudioFormat audioFormat; audioFormat.setSampleRate(sampleRate); audioFormat.setChannelCount(1); audioFormat.setSampleSize(16); audioFormat.setSampleType(QAudioFormat::SignedInt); audioFormat.setByteOrder(QAudioFormat::LittleEndian); audioFormat.setCodec("audio/pcm"); //QAudioDeviceInfo info(QAudioDeviceInfo::defaultInputDevice()); if (!m_inputDevice.isFormatSupported(audioFormat)) { qWarning() << "Default format not supported - trying to use nearest"; audioFormat = m_inputDevice.nearestFormat(audioFormat); } m_audioInput = new QAudioInput(m_inputDevice, audioFormat, this); m_ioDevice = m_audioInput->start(); connect(m_ioDevice, SIGNAL(readyRead()), this, SLOT(readAudio())); }
void AudioCore::recordAudioSample(int t = 500, bool writeToFile = false) { latestSampleDuration = t; writeSampleToFile = writeToFile; sampleAudioBuffer.open(QBuffer::ReadWrite); QAudioFormat format; // Настраиваем желаемый формат, например: format.setSampleRate(AudioCore::SampleRate); format.setSampleSize(8 * AudioCore::SampleSize); format.setChannelCount(1); format.setCodec("audio/pcm"); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::UnSignedInt); // ВЫбрать устройство ввода 0: QAudioDeviceInfo info(QAudioDeviceInfo::availableDevices(QAudio::AudioInput).at(0)); qDebug() << "Selected input device =" << info.deviceName(); if (!info.isFormatSupported(format)) { qWarning() << "Default format not supported, trying to use the nearest."; format = info.nearestFormat(format); } audio = new QAudioInput(format); // Очень важно, иначе будут шумы и все картинки ужасно некрасивые. audio->setVolume(AudioCore::AudioLevel); connect(audio, SIGNAL(stateChanged(QAudio::State)), this, SLOT(handleStateChanged(QAudio::State))); QTimer::singleShot(t, this, SLOT(stopRecording())); audio->start(&sampleAudioBuffer); }
void AudioProcessorQt::start() { if (!input()) { return; } if (!m_device) { m_device = new AudioDevice(this); } if (!m_audioOutput) { QAudioFormat format; format.setSampleRate(44100); format.setChannelCount(2); format.setSampleSize(16); format.setCodec("audio/pcm"); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::SignedInt); m_audioOutput = new QAudioOutput(format, this); m_audioOutput->setCategory("game"); } m_device->setInput(input()); m_device->setFormat(m_audioOutput->format()); m_audioOutput->setBufferSize(input()->audioBuffers * 4); m_audioOutput->start(m_device); }
int test_2() { qyvlik::FFmpegStream* ffmpegStream = new qyvlik::FFmpegStream(); QAudioFormat format; // Set up the format, eg. format.setSampleRate(44100); format.setChannelCount(2); format.setCodec("audio/pcm"); format.setSampleType(QAudioFormat::SignedInt); format.setSampleSize(16); format.setByteOrder(QAudioFormat::LittleEndian); QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); if (!info.isFormatSupported(format)) { qDebug() << "Raw audio format not supported by backend, cannot play audio."; return -1; } ffmpegStream->setFileName("E:/Test/1.mp3"); QAudioOutput *audio; audio = new QAudioOutput(format); audio->start(ffmpegStream); qDebug() << "Play Finished~"; }
int CRecordData::StartRecord(bool bIsSection) { if(true == bIsSection) { } else { SetNumofRecDatSec(0); // 初始化一个buffer储存raw数据 QBuffer* bufRecord = new QBuffer(); bufRecord->open( QIODevice::WriteOnly | QIODevice::Truncate ); SetRecDatSec(m_iNumOfRecDatSec, bufRecord); SetNumofRecDatSec(m_iNumOfRecDatSec+1); // 设置录音格式 QAudioFormat format; format.setSampleRate(8000); format.setChannelCount(1); format.setSampleSize(8); format.setCodec("audio/pcm"); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::UnSignedInt); // 设置录音设备 audioInput = new QAudioInput(format, this); audioInput->start(bufRecord); } }
void MainWindow::on_pushButton_clicked() { QIODevice *QID; //QID->open( QIODevice::WriteOnly); QBuffer myQB; //QID(myQB); //cb(128000,64000); //dFile.setFileName("../RecordTest.raw"); microphoneBuffer->open( QIODevice::ReadWrite); QAudioFormat format; // Set up the desired format, for example: format.setSampleRate(16000); format.setChannelCount(1); format.setSampleSize(16); format.setCodec("audio/pcm"); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::UnSignedInt); QAudioDeviceInfo info = QAudioDeviceInfo::defaultInputDevice(); if (!info.isFormatSupported(format)) { qWarning() << "Default format not supported, trying to use the nearest."; format = info.nearestFormat(format); } audio = new QAudioInput(format, this); connect(audio, SIGNAL(stateChanged(QAudio::State)), this, SLOT(handleStateChanged(QAudio::State))); //QTimer::singleShot(5000, this, SLOT(on_pushButton_2_clicked())); isRecording = true; audio->start(microphoneBuffer); }
FrequencyAnalyzer::FrequencyAnalyzer(QObject *parent) : QObject(parent), d_ptr(new FrequencyAnalyzerPrivate(this)) { Q_D(FrequencyAnalyzer); QAudioDeviceInfo info = QAudioDeviceInfo::defaultInputDevice(); qDebug() << "device name: " << info.deviceName() << "\n" << "supported frequency:" << info.supportedFrequencies() << "\n" << "supported codecs" << info.supportedCodecs() << "\n" << "supported sample sizes" << info.supportedSampleSizes() << "\n" << "supported sample types" << info.supportedSampleTypes() << "\n"; QAudioFormat format = info.preferredFormat(); format.setCodec("audio/pcm"); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::SignedInt); format.setSampleSize(32); //format.setFrequency(d->sampling = 11025); //format.setFrequency(d->sampling = 22050); format.setFrequency(d->sampling = info.supportedFrequencies().last()); format.setChannelCount(1); if (!info.isFormatSupported(format)) { qWarning("Format is unsupported"); return; } d->input = new QAudioInput(info, format, this); connect(d->input, SIGNAL(stateChanged(QAudio::State)), SLOT(_q_onStateChanged())); }
void xmppClient::slotConnected() { QXmppCall *call = qobject_cast<QXmppCall*>(sender()); Q_ASSERT(call); qDebug() << "Call connected"; QXmppRtpChannel *channel = call->audioChannel(); // prepare audio format QAudioFormat format; format.setFrequency(channel->payloadType().clockrate()); format.setChannels(channel->payloadType().channels()); format.setSampleSize(16); format.setCodec("audio/pcm"); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::SignedInt); // the size in bytes of the audio buffers to/from sound devices // 160 ms seems to be the minimum to work consistently on Linux/Mac/Windows const int bufferSize = (format.frequency() * format.channels() * (format.sampleSize() / 8) * 160) / 1000; // initialise audio output QAudioOutput *audioOutput = new QAudioOutput(format, this); audioOutput->setBufferSize(bufferSize); audioOutput->start(channel); // initialise audio input QAudioInput *audioInput = new QAudioInput(format, this); audioInput->setBufferSize(bufferSize); audioInput->start(channel); }
void xmppClient::slotAudioModeChanged(QIODevice::OpenMode mode) { QXmppCall *call = qobject_cast<QXmppCall*>(sender()); Q_ASSERT(call); QXmppRtpAudioChannel *channel = call->audioChannel(); // prepare audio format QAudioFormat format; format.setSampleRate(channel->payloadType().clockrate()); format.setChannelCount(channel->payloadType().channels()); format.setSampleSize(16); format.setCodec("audio/pcm"); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::SignedInt); // the size in bytes of the audio buffers to/from sound devices // 160 ms seems to be the minimum to work consistently on Linux/Mac/Windows const int bufferSize = (format.sampleRate() * format.channelCount() * (format.sampleSize() / 8) * 160) / 1000; if (mode & QIODevice::ReadOnly) { // initialise audio output QAudioOutput *audioOutput = new QAudioOutput(format, this); audioOutput->setBufferSize(bufferSize); audioOutput->start(channel); } if (mode & QIODevice::WriteOnly) { // initialise audio input QAudioInput *audioInput = new QAudioInput(format, this); audioInput->setBufferSize(bufferSize); audioInput->start(channel); } }
void InitializeAudio() { m_format.setSampleRate(SampleRate); //set frequency to 44100 m_format.setChannelCount(1); //set channels to mono m_format.setSampleSize(16); //set sample sze to 16 bit m_format.setSampleType(QAudioFormat::SignedInt ); //Sample type as usigned integer sample UnSignedInt m_format.setByteOrder(QAudioFormat::LittleEndian); //Byte order m_format.setCodec("audio/pcm"); //set codec as simple audio/pcm QAudioDeviceInfo infoIn(QAudioDeviceInfo::defaultInputDevice()); if (!infoIn.isFormatSupported(m_format)) { //Default format not supported - trying to use nearest m_format = infoIn.nearestFormat(m_format); } QAudioDeviceInfo infoOut(QAudioDeviceInfo::defaultOutputDevice()); if (!infoOut.isFormatSupported(m_format)) { //Default format not supported - trying to use nearest m_format = infoOut.nearestFormat(m_format); } m_audioInput = new QAudioInput(m_Inputdevice, m_format); m_audioOutput = new QAudioOutput(m_Outputdevice, m_format); }
QAudioFormat readWavHeader(QIODevice *device) { CombinedHeader header; bool result = device->read(reinterpret_cast<char *>(&header), sizeof(CombinedHeader)) == sizeof(CombinedHeader); QAudioFormat format; if (result) { if ((memcmp(&header.riff.descriptor.id, "RIFF", 4) == 0 || memcmp(&header.riff.descriptor.id, "RIFX", 4) == 0) && memcmp(&header.riff.type, "WAVE", 4) == 0 && memcmp(&header.wave.descriptor.id, "fmt ", 4) == 0 && (header.wave.audioFormat == 1 || header.wave.audioFormat == 0)) { // Read off remaining header information DATAHeader dataHeader; if (qFromLittleEndian<quint32>(header.wave.descriptor.size) > sizeof(WAVEHeader)) { // Extended data available quint16 extraFormatBytes; if (device->peek((char*)&extraFormatBytes, sizeof(quint16)) != sizeof(quint16)) return format; const qint64 throwAwayBytes = sizeof(quint16) + qFromLittleEndian<quint16>(extraFormatBytes); if (device->read(throwAwayBytes).size() != throwAwayBytes) return format; } if (device->read((char*)&dataHeader, sizeof(DATAHeader)) != sizeof(DATAHeader)) return format; // Establish format if (memcmp(&header.riff.descriptor.id, "RIFF", 4) == 0) format.setByteOrder(QAudioFormat::LittleEndian); else format.setByteOrder(QAudioFormat::BigEndian); int bps = qFromLittleEndian<quint16>(header.wave.bitsPerSample); format.setChannelCount(qFromLittleEndian<quint16>(header.wave.numChannels)); format.setCodec("audio/pcm"); format.setSampleRate(qFromLittleEndian<quint32>(header.wave.sampleRate)); format.setSampleSize(qFromLittleEndian<quint16>(header.wave.bitsPerSample)); format.setSampleType(bps == 8 ? QAudioFormat::UnSignedInt : QAudioFormat::SignedInt); } } return format; }
bool Engine::selectFormat() { bool foundSupportedFormat = false; if (m_file || QAudioFormat() != m_format) { QAudioFormat format = m_format; if (m_file) // Header is read from the WAV file; just need to check whether // it is supported by the audio output device format = m_file->fileFormat(); if (m_audioOutputDevice.isFormatSupported(format)) { setFormat(format); foundSupportedFormat = true; } } else { QList<int> sampleRatesList; if (!m_generateTone) sampleRatesList += m_audioOutputDevice.supportedSampleRates(); sampleRatesList = sampleRatesList.toSet().toList(); // remove duplicates qSort(sampleRatesList); ENGINE_DEBUG << "Engine::initialize frequenciesList" << sampleRatesList; QList<int> channelsList; channelsList += m_audioOutputDevice.supportedChannelCounts(); channelsList = channelsList.toSet().toList(); qSort(channelsList); ENGINE_DEBUG << "Engine::initialize channelsList" << channelsList; QAudioFormat format; format.setByteOrder(QAudioFormat::LittleEndian); format.setCodec("audio/pcm"); format.setSampleSize(16); format.setSampleType(QAudioFormat::SignedInt); int sampleRate, channels; foreach (sampleRate, sampleRatesList) { if (foundSupportedFormat) break; format.setSampleRate(sampleRate); foreach (channels, channelsList) { format.setChannelCount(channels); const bool outputSupport = m_audioOutputDevice.isFormatSupported(format); ENGINE_DEBUG << "Engine::initialize checking " << format << "output" << outputSupport; if (outputSupport) { foundSupportedFormat = true; break; } } } if (!foundSupportedFormat) format = QAudioFormat(); setFormat(format); }
QAudioFormat QAudioDeviceInfoInternal::preferredFormat() const { QAudioFormat format; switch (m_mode) { case QAudio::AudioOutput: format.setFrequency(44100); format.setChannels(2); format.setSampleSize(16); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::SignedInt); format.setCodec(QLatin1String("audio/pcm")); break; case QAudio::AudioInput: format.setFrequency(8000); format.setChannels(1); format.setSampleSize(16); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::SignedInt); format.setCodec(QLatin1String("audio/pcm")); break; default: Q_ASSERT_X(false, Q_FUNC_INFO, "Invalid mode"); } if (!isFormatSupported(format)) { format = QAudioFormat(); format.setCodec(QLatin1String("audio/pcm")); if (m_capabilities.contains(format.codec())) { const Capabilities &codecCaps = m_capabilities[format.codec()]; if (codecCaps.m_frequencies.size()) format.setFrequency(codecCaps.m_frequencies[0]); if (codecCaps.m_channels.size()) format.setChannels(codecCaps.m_channels[0]); if (codecCaps.m_sampleSizes.size()) format.setSampleSize(codecCaps.m_sampleSizes[0]); if (codecCaps.m_byteOrders.size()) format.setByteOrder(codecCaps.m_byteOrders[0]); if (codecCaps.m_sampleTypes.size()) format.setSampleType(codecCaps.m_sampleTypes[0]); } } return format; }
QAudioFormat format() { QAudioFormat format; format.setSampleRate(8000); format.setChannelCount(1); format.setSampleSize(8); format.setCodec("audio/pcm"); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::UnSignedInt); return format; }
void TSoundOutputDeviceImp::play(const TSoundTrackP &st, TINT32 s0, TINT32 s1, bool loop, bool scrubbing) { if (!doSetStreamFormat(st->getFormat())) return; MyData *myData = new MyData(); myData->imp = shared_from_this(); myData->totalPacketCount = s1 - s0; myData->fileByteCount = (s1 - s0) * st->getSampleSize(); myData->entireFileBuffer = new char[myData->fileByteCount]; memcpy(myData->entireFileBuffer, st->getRawData() + s0 * st->getSampleSize(), myData->fileByteCount); m_isPlaying = true; myData->isLooping = loop; QAudioFormat format; QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); format.setSampleSize(st->getBitPerSample()); format.setCodec("audio/pcm"); format.setChannelCount(st->getChannelCount()); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(st->getFormat().m_signedSample ? QAudioFormat::SignedInt : QAudioFormat::UnSignedInt); format.setSampleRate(st->getSampleRate()); QList<QAudioFormat::Endian> sbos = info.supportedByteOrders(); QList<int> sccs = info.supportedChannelCounts(); QList<int> ssrs = info.supportedSampleRates(); QList<QAudioFormat::SampleType> sstypes = info.supportedSampleTypes(); QList<int> ssss = info.supportedSampleSizes(); QStringList supCodes = info.supportedCodecs(); if (!info.isFormatSupported((format))) { format = info.nearestFormat(format); int newChannels = format.channelCount(); int newBitsPerSample = format.sampleSize(); int newSampleRate = format.sampleRate(); QAudioFormat::SampleType newSampleType = format.sampleType(); QAudioFormat::Endian newBo = format.byteOrder(); } int test = st->getSampleCount() / st->getSampleRate(); QByteArray *data = new QByteArray(myData->entireFileBuffer, myData->fileByteCount); QBuffer *newBuffer = new QBuffer; newBuffer->setBuffer(data); newBuffer->open(QIODevice::ReadOnly); newBuffer->seek(0); if (m_audioOutput == NULL) { m_audioOutput = new QAudioOutput(format, NULL); } m_audioOutput->start(newBuffer); m_audioOutput->setVolume(m_volume); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), m_timer(), m_totalNeededTime(0,0), m_spentTime(0,0), m_belowAlarmTime(false), m_belowEndTime(false), m_dbusInterface(0), m_alarmTime(60), m_useLED(true), m_useSounds(true) { ui->setupUi(this); m_topics.push_back(new AgendaTopic("topic #1", QTime(0,5))); m_topics.push_back(new AgendaTopic("topic #2", QTime(0,15))); calculateTotalTimes(); m_currentTopic = 1; mainWindowSetup(); setupMenus(); connect(ui->next, SIGNAL(clicked()), this, SLOT(switchToNextTopic())); connect(ui->previous, SIGNAL(clicked()), this, SLOT(switchToPreviousTopic())); connect(ui->start, SIGNAL(clicked()), this, SLOT(startOrStop())); connect(ui->plus15, SIGNAL(clicked()), this, SLOT(add15m())); connect(ui->plus5, SIGNAL(clicked()), this, SLOT(add5m())); connect(ui->plus1, SIGNAL(clicked()), this, SLOT(add1m())); connect(ui->minus15, SIGNAL(clicked()), this, SLOT(minus15m())); connect(ui->minus5, SIGNAL(clicked()), this, SLOT(minus5m())); connect(ui->minus1, SIGNAL(clicked()), this, SLOT(minus1m())); connect(&m_timer, SIGNAL(timeout()), this, SLOT(timeElapsed())); #ifdef IS_MAEMO m_dbusInterface = new QDBusInterface(MCE_SERVICE, MCE_REQUEST_PATH, MCE_REQUEST_IF, QDBusConnection::systemBus(), this); QDBusMessage reply = m_dbusInterface->call(MCE_ENABLE_LED); if (reply.type() == QDBusMessage::ErrorMessage) qDebug() << reply.errorMessage(); #endif // set up the output audio QAudioFormat format; // Set up the format, eg. format.setFrequency(44100); format.setChannels(1); format.setSampleSize(16); format.setCodec("audio/pcm"); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::SignedInt); QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); m_audioOut = new QAudioOutput(format); // connect(m_audioOut,SIGNAL(stateChanged(QAudio::State)),SLOT(finishedPlaying(QAudio::State))); }
QAudioFormat QAudioDeviceInfoInternal::preferredFormat() const { QAudioFormat nearest; if(mode == QAudio::AudioOutput) { nearest.setFrequency(44100); nearest.setChannelCount(2); nearest.setByteOrder(QAudioFormat::LittleEndian); nearest.setSampleType(QAudioFormat::SignedInt); nearest.setSampleSize(16); nearest.setCodec(QLatin1String("audio/pcm")); } else { nearest.setFrequency(11025); nearest.setChannelCount(1); nearest.setByteOrder(QAudioFormat::LittleEndian); nearest.setSampleType(QAudioFormat::SignedInt); nearest.setSampleSize(8); nearest.setCodec(QLatin1String("audio/pcm")); } return nearest; }
QAudioFormat MultimediaWidget::getAudioFormat( AVInfo const & aAvInfo ) const { QAudioFormat audioFormat; audioFormat.setSampleRate( aAvInfo.getAudioSampleRate() ); audioFormat.setChannelCount( aAvInfo.getAudioChannel() ); audioFormat.setSampleSize( aAvInfo.getAudioBitsPerSample() ); audioFormat.setCodec( "audio/pcm" ); audioFormat.setByteOrder(QAudioFormat::LittleEndian); audioFormat.setSampleType(QAudioFormat::UnSignedInt); return audioFormat; }
QAudioFormat AudioHandler::createFormat() { QAudioFormat f; f.setCodec("audio/pcm"); f.setChannelCount(2); f.setSampleRate(48000); f.setSampleSize(16); f.setSampleType(QAudioFormat::UnSignedInt); f.setByteOrder(QAudioFormat::LittleEndian); return f; }
QAudioFormat MediaCall::GetAudioReadFormat () const { const auto& payload = Call_->audioChannel ()->payloadType (); QAudioFormat result; result.setSampleRate (payload.clockrate ()); result.setChannelCount (payload.channels ()); result.setSampleSize (16); result.setCodec ("audio/pcm"); result.setByteOrder (QAudioFormat::LittleEndian); result.setSampleType (QAudioFormat::SignedInt); return result; }
void VideoItem::updateAudioFormat() { QAudioFormat format; format.setSampleSize(16); format.setSampleRate(core->getSampleRate()); format.setChannelCount(2); format.setSampleType(QAudioFormat::SignedInt); format.setByteOrder(QAudioFormat::LittleEndian); format.setCodec("audio/pcm"); // TODO test format audio->setFormat(format); }
QAudioFormat Settings::audioFormat() const { QAudioFormat format; format.setByteOrder(QAudioFormat::LittleEndian); format.setChannelCount(1); format.setCodec("audio/pcm"); format.setSampleRate(d->sampleRate); format.setSampleSize(d->sampleSize); format.setSampleType(QAudioFormat::SignedInt); return d->inputDevice.nearestFormat(format); }
void MainWindow::PlaySound() { //QSound *sound = new QSound("/home/mike/TediumRemedy/sample.wav", this); //sound->play(); //return; sourceFile.setFileName("/home/mike/TediumRemedy/sample.wav"); sourceFile.open(QIODevice::ReadOnly); QAudioFormat format; // Set up the format, eg. format.setSampleRate(44100); format.setChannelCount(2); format.setSampleSize(16); format.setCodec("audio/pcm"); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::SignedInt); QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); if (!info.isFormatSupported(format)) { qWarning() << "Raw audio format not supported by backend, cannot play audio."; return; } return; /*QSound::play(":resources/connected.wav"); return; */ QList<QAudioDeviceInfo> l = QAudioDeviceInfo::availableDevices(QAudio::AudioOutput); foreach(QAudioDeviceInfo i, l) { qDebug() << i.supportedCodecs(); } QTextStream out(stdout); out << "START-OUTPUT" << endl; QList<QAudioDeviceInfo> outputList = QAudioDeviceInfo::availableDevices(QAudio::AudioOutput); foreach(QAudioDeviceInfo outputInfo, outputList) { out << outputInfo.deviceName() << endl; } out << "END-OUTPUT" << endl; return; /*QMediaPlayer *p = new QMediaPlayer(0); p->setMedia(QMediaContent(QUrl::fromLocalFile(":/resources/connected.wav"))); p->play();*/ }
QAudioFormat ViAudioFormat::toQAudioFormat() { QAudioFormat format; format.setSampleSize(mSampleSize); format.setSampleRate(mSampleRate); format.setChannelCount(mChannelCount); if(mSampleType == SignedInt) { format.setSampleType(QAudioFormat::SignedInt); } else if(mSampleType == UnSignedInt) { format.setSampleType(QAudioFormat::UnSignedInt); } else if(mSampleType == Float) { format.setSampleType(QAudioFormat::Float); } else { format.setSampleType(QAudioFormat::Unknown); } if(mByteOrder == ViAudioFormat::BigEndian) { format.setByteOrder(QAudioFormat::BigEndian); } else { format.setByteOrder(QAudioFormat::LittleEndian); } format.setCodec("audio/pcm"); return format; }
QAudioOutput * MainWindow::createAudioOutput() { QAudioFormat settings; settings.setFrequency(44100); settings.setChannels(1); settings.setSampleSize(16); settings.setCodec("audio/pcm"); settings.setByteOrder(QAudioFormat::LittleEndian); settings.setSampleType(QAudioFormat::SignedInt); m_audioOutput = new QAudioOutput(settings); return m_audioOutput; }
QAudioFormat MediaCall::GetAudioFormat () { const QXmppJinglePayloadType& payload = Call_->audioChannel ()->payloadType (); QAudioFormat result; #if QT_VERSION >= 0x040700 result.setSampleRate (payload.clockrate ()); result.setChannelCount (payload.channels ()); #endif result.setSampleSize (16); result.setCodec ("audio/pcm"); result.setByteOrder (QAudioFormat::LittleEndian); result.setSampleType (QAudioFormat::SignedInt); return result; }