--- a/qtmobility/examples/audiorecorder/audiorecorder.cpp Wed Jun 23 19:08:38 2010 +0300
+++ b/qtmobility/examples/audiorecorder/audiorecorder.cpp Tue Jul 06 15:12:50 2010 +0300
@@ -54,18 +54,9 @@
audiosource = new QAudioCaptureSource;
capture = new QMediaRecorder(audiosource);
- if (capture->supportedAudioCodecs().size() > 0) {
- QAudioEncoderSettings audioSettings;
- audioSettings.setQuality(QtMultimedia::LowQuality);
- audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding);
- audioSettings.setCodec(capture->supportedAudioCodecs().first());
- capture->setEncodingSettings(audioSettings,QVideoEncoderSettings(),
- capture->supportedContainers().first());
- }
-
// set a default file
#ifdef Q_OS_SYMBIAN
- capture->setOutputLocation(recordPathAudio(QUrl()));
+ capture->setOutputLocation(recordPathAudio(QUrl()));
#else
capture->setOutputLocation(QUrl("test.raw"));
#endif
@@ -98,20 +89,20 @@
codecLabel->setText(tr("Audio Codec"));
codecsBox = new QComboBox(this);
codecsBox->setSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Fixed);
- codecsBox->setMinimumSize(200,10);
-
+ codecsBox->setMinimumSize(200,10);
+
QLabel* sampleRateLabel = new QLabel;
sampleRateLabel->setText(tr("Sample Rate"));
sampleRateBox = new QComboBox(this);
sampleRateBox->setSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Fixed);
sampleRateBox->setMinimumSize(200,10);
-
+
QLabel* channelLabel = new QLabel;
channelLabel->setText(tr("Channel count"));
channelBox = new QComboBox(this);
channelBox->setSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Fixed);
channelBox->setMinimumSize(200,10);
-
+
QLabel* qualityLabel = new QLabel;
qualityLabel->setText(tr("Audio Quality"));
qualityBox = new QComboBox(this);
@@ -137,19 +128,19 @@
for(int i = 0; i < containers.count(); i++)
containersBox->addItem(containers.at(i));
- QList<int> samplerates = capture->supportedAudioSampleRates();
- for(int i = 0; i < samplerates.count(); i++) {
+ QList<int> samplerates = capture->supportedAudioSampleRates();
+ for(int i = 0; i < samplerates.count(); i++) {
QString rateString = QString("%1").arg(samplerates.at(i));
- sampleRateBox->addItem(rateString, QVariant(samplerates.at(i)));
+ sampleRateBox->addItem(rateString, QVariant(samplerates.at(i)));
}
-
+
QList<int> channels;
- channels <<1<<2;
- for(int i = 0; i < channels.count(); i++) {
+ channels <<1<<2;
+ for(int i = 0; i < channels.count(); i++) {
QString channelString = QString("%1").arg(channels.at(i));
- channelBox->addItem(channelString, QVariant(channels.at(i)));
+ channelBox->addItem(channelString, QVariant(channels.at(i)));
}
-
+
qualityBox->addItem(tr("Low"));
qualityBox->addItem(tr("Medium"));
qualityBox->addItem(tr("High"));
@@ -160,8 +151,8 @@
if (codecs.count() > 0) {
QAudioEncoderSettings audioSettings;
- audioSettings.setQuality(QtMultimedia::LowQuality);
- audioSettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding);
+ audioSettings.setQuality(QtMultimediaKit::LowQuality);
+ audioSettings.setEncodingMode(QtMultimediaKit::ConstantQualityEncoding);
audioSettings.setCodec(codecs.first());
capture->setEncodingSettings(audioSettings,QVideoEncoderSettings(),
containers.first());
@@ -182,25 +173,25 @@
layout->addWidget(codecLabel,3,0,Qt::AlignHCenter);
connect(codecsBox,SIGNAL(activated(int)),SLOT(codecChanged(int)));
layout->addWidget(codecsBox,3,1,1,3,Qt::AlignLeft);
-
+
layout->addWidget(sampleRateLabel,4,0,Qt::AlignHCenter);
connect(sampleRateBox,SIGNAL(activated(int)),SLOT(sampleRateChanged(int)));
layout->addWidget(sampleRateBox,4,1,1,3,Qt::AlignLeft);
-
+
layout->addWidget(channelLabel,5,0,Qt::AlignHCenter);
connect(channelBox,SIGNAL(activated(int)),SLOT(channelCountChanged(int)));
layout->addWidget(channelBox,5,1,1,3,Qt::AlignLeft);
-
+
layout->addWidget(qualityLabel,6,0,Qt::AlignHCenter);
connect(qualityBox,SIGNAL(activated(int)),SLOT(qualityChanged(int)));
layout->addWidget(qualityBox,6,1,1,3,Qt::AlignLeft);
fileButton = new QPushButton(this);
- fileButton->setText(tr("Output File"));
+ fileButton->setText(tr("Output File"));
connect(fileButton,SIGNAL(clicked()),SLOT(selectOutputFile()));
layout->addWidget(fileButton,7,0,Qt::AlignHCenter);
-
- pauseButton = new QPushButton(this);
+
+ pauseButton = new QPushButton(this);
pauseButton->setText(tr("Pause"));
connect(pauseButton,SIGNAL(clicked()),SLOT(togglePause()));
layout->addWidget(pauseButton,7,1,Qt::AlignHCenter);
@@ -216,14 +207,14 @@
statusLabel->setFrameStyle(QFrame::Panel | QFrame::Sunken);
statusLabel->setLineWidth(1);
layout->addWidget(statusLabel,8,0,Qt::AlignHCenter);
-
+
QLabel* durationLabel = new QLabel;
durationLabel->setText(tr("Duration"));
layout->addWidget(durationLabel,8,1,Qt::AlignRight);
recTime = new QLabel;
layout->addWidget(recTime,8,2,Qt::AlignLeft);
-
+
window->setLayout(layout);
setCentralWidget(window);
window->show();
@@ -233,21 +224,21 @@
}
QUrl AudioRecorder::recordPathAudio(QUrl filePath)
-{
+{
if (!filePath.isEmpty())
- return filePath;
-
+ return filePath;
+
QDir outputDir(QDir::rootPath());
-
- int lastImage = 0;
+
+ int lastImage = 0;
int fileCount = 0;
- foreach(QString fileName, outputDir.entryList(QStringList() << "testclip_*")) {
+ foreach(QString fileName, outputDir.entryList(QStringList() << "testclip_*")) {
int imgNumber = fileName.mid(5, fileName.size()-9).toInt();
lastImage = qMax(lastImage, imgNumber);
- if (outputDir.exists(fileName))
- fileCount+=1;
- }
- lastImage+=fileCount;
+ if (outputDir.exists(fileName))
+ fileCount+=1;
+ }
+ lastImage+=fileCount;
QUrl location(QDir::toNativeSeparators(outputDir.canonicalPath()+QString("/testclip_%1").arg(lastImage+1,4,10,QLatin1Char('0'))));
return location;
}
@@ -311,32 +302,32 @@
}
void AudioRecorder::sampleRateChanged(int idx)
-{
+{
QAudioEncoderSettings settings = capture->audioSettings();
settings.setSampleRate((sampleRateBox->itemData(idx).toInt()));
capture->setEncodingSettings(settings);
}
void AudioRecorder::channelCountChanged(int idx)
-{
+{
QAudioEncoderSettings settings = capture->audioSettings();
settings.setChannelCount((channelBox->itemData(idx).toInt()));
capture->setEncodingSettings(settings);
}
void AudioRecorder::qualityChanged(int idx)
-{
- QAudioEncoderSettings settings = capture->audioSettings();
-
+{
+ QAudioEncoderSettings settings = capture->audioSettings();
+
switch(idx) {
case 0:
- settings.setQuality(QtMultimedia::LowQuality);
+ settings.setQuality(QtMultimediaKit::LowQuality);
break;
case 1:
- settings.setQuality(QtMultimedia::NormalQuality);
+ settings.setQuality(QtMultimediaKit::NormalQuality);
break;
default:
- settings.setQuality(QtMultimedia::HighQuality);
+ settings.setQuality(QtMultimediaKit::HighQuality);
}
capture->setEncodingSettings(settings);
}
@@ -347,13 +338,13 @@
switch(idx) {
case 0:
- settings.setEncodingMode(QtMultimedia::ConstantQualityEncoding);
+ settings.setEncodingMode(QtMultimediaKit::ConstantQualityEncoding);
break;
case 1:
- settings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
+ settings.setEncodingMode(QtMultimediaKit::ConstantBitRateEncoding);
break;
default:
- settings.setEncodingMode(QtMultimedia::ConstantQualityEncoding);
+ settings.setEncodingMode(QtMultimediaKit::ConstantQualityEncoding);
}
capture->setEncodingSettings(settings);
}
@@ -365,23 +356,23 @@
recTime->setText("0");
currentTime = 0;
}
-#ifdef Q_OS_SYMBIAN
- if (!paused)
+#ifdef Q_OS_SYMBIAN
+ if (!paused)
capture->setOutputLocation(recordPathAudio(destination));
#endif
- capture->record();
+ capture->record();
active = true;
paused = false;
} else {
- capture->stop();
+ capture->stop();
active = false;
}
}
void AudioRecorder::togglePause()
{
- if(active && !paused) {
- capture->pause();
+ if(active && !paused) {
+ capture->pause();
active = false;
paused = true;
}
@@ -400,10 +391,10 @@
if(fileNames.size() > 0)
#ifdef Q_OS_SYMBIAN
destination = QUrl(fileNames.first());
-#else
+#else
capture->setOutputLocation(QUrl(fileNames.first()));
-
-#endif
+
+#endif
}
void AudioRecorder::errorChanged(QMediaRecorder::Error err)
@@ -417,17 +408,17 @@
{
QAudioEncoderSettings settings;
settings.setCodec(codecsBox->itemText(idx));
-
+
QList<int> supportedSampleRates = capture->supportedAudioSampleRates(settings);
- sampleRateBox->clear();
- for(int i = 0; i < supportedSampleRates.count(); i++) {
+ sampleRateBox->clear();
+ for(int i = 0; i < supportedSampleRates.count(); i++) {
QString rateString = QString("%1").arg(supportedSampleRates.at(i));
- sampleRateBox->addItem(rateString, QVariant(supportedSampleRates.at(i)));
- }
+ sampleRateBox->addItem(rateString, QVariant(supportedSampleRates.at(i)));
+ }
}
void AudioRecorder::updateChannelCount(int idx)
-{
+{
QMediaControl *control = audiosource->service()->requestControl(QAudioEncoderControl_iid);
if (!control)
return;
@@ -445,14 +436,14 @@
channels <<1<<2;
else
channels <<1;
- for(int i = 0; i < channels.count(); i++) {
+ for(int i = 0; i < channels.count(); i++) {
QString channelString = QString("%1").arg(channels.at(i));
- channelBox->addItem(channelString, QVariant(channels.at(i)));
- }
+ channelBox->addItem(channelString, QVariant(channels.at(i)));
+ }
}
void AudioRecorder::updateQuality(int idx)
-{
+{
QMediaControl *control = audiosource->service()->requestControl(QAudioEncoderControl_iid);
if (!control)
return;
@@ -472,5 +463,5 @@
qualityBox->addItem(tr("High"));
}else {
qualityBox->addItem(tr("Low"));
- }
+ }
}