Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Classes principales  ·  Annotées  ·  Classes groupées  ·  Modules  ·  Fonctions  · 

Audio Recorder Example

The Audio Recorder Example shows how to create a simple audio recorder.

It demonstrates the discovery of the supported devices and codecs and the use of recording functions in the QAudioRecorder class.

We display a window for the user to select the appropriate audio input, codec, container, and sample rate. Allow a setting of either quality or bitrate. Finally, the output file can be selected and recording can be started.

The lists are setup using the audioInputs(), supportedAudioCodecs(), supportedContainers(), supportedContainers(), and supportedAudioSampleRates() methods. The quality slider is setup from 0 (zero) to QtMultimedia::VeryHighQuality with a default value of QtMultimedia::NormalQuality, while the bitrates are hardcoded into the list.

To record audio we simply create a QAudioRecorder object.

 audioRecorder = new QAudioRecorder(this);

And setup the lists as described above. The text on the record and pause buttons are toggled depending on the state of the audioRecorder object. This means that if the state is QMediaRecorder::StoppedState then the button text will be "Record" and "Pause". In QMediaRecorder::RecordingState the record button will have the text "Stop", and in QMediaRecorder::PausedState the pause button will have the text "Resume".

Pressing the buttons will also result in a toggle based on the state. If recording is stopped, then pressing the record button will setup the QAudioEncoderSettings based on the values of the selection lists, will set the encoding settings and container on the audioRecorder object, and start recording using the record() method.

     QAudioEncoderSettings settings;
     settings.setCodec(boxValue(ui->audioCodecBox).toString());
     settings.setSampleRate(boxValue(ui->sampleRateBox).toInt());
     settings.setBitRate(boxValue(ui->bitrateBox).toInt());
     settings.setQuality(QtMultimedia::EncodingQuality(ui->qualitySlider->value()));
     settings.setEncodingMode(ui->constantQualityRadioButton->isChecked() ?
                              QtMultimedia::ConstantQualityEncoding :
                              QtMultimedia::ConstantBitRateEncoding);

     QString container = boxValue(ui->containerBox).toString();

     audioRecorder->setEncodingSettings(settings, QVideoEncoderSettings(), container);
     audioRecorder->record();

While recording, the status bar of the application is updated with duration information from the durationChanged signal from the audioRecorder object.

 ui->statusbar->showMessage(tr("Recorded %1 sec").arg(duration / 1000));

Files:

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 5.0-snapshot
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web