Reordering audio overview doc
Trying to put more common use cases earlier in the list of implementation details. Change-Id: I11195d5d2f7846dec3342d43fe3917fb13374daa Reviewed-by: Ling Hu <ling.hu@nokia.com> Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
This commit is contained in:
committed by
Qt by Nokia
parent
2564dbec68
commit
f11c5c83a0
@@ -40,6 +40,55 @@ See that documentation for more information.
|
|||||||
|
|
||||||
\section1 Audio Implementation Details
|
\section1 Audio Implementation Details
|
||||||
|
|
||||||
|
\section2 Playing compressed audio
|
||||||
|
For playing media or audio files that are not simple, raw audio, you can
|
||||||
|
use the \l QMediaPlayer C++ class, or the \l {Audio} and \l {MediaPlayer} QML types.
|
||||||
|
The QMediaPlayer class and associated QML types are also capable of playing
|
||||||
|
\l{multimedia-playing-video}{video}, if required. The compressed audio formats supported does depend
|
||||||
|
on the operating system environment, and also what media plugins the user
|
||||||
|
may have installed.
|
||||||
|
|
||||||
|
Here is how you play a local file using C++:
|
||||||
|
|
||||||
|
\snippet doc/src/snippets/multimedia-snippets/media.cpp Local playback
|
||||||
|
|
||||||
|
You can also put files (even remote URLs) into a playlist:
|
||||||
|
\snippet doc/src/snippets/multimedia-snippets/media.cpp Audio playlist
|
||||||
|
|
||||||
|
\section2 Recording audio to a file
|
||||||
|
For recording audio to a file, the \l {QAudioRecorder} class allows you
|
||||||
|
to compress audio data from an input device and record it.
|
||||||
|
|
||||||
|
\snippet doc/src/snippets/multimedia-snippets/media.cpp Audio recorder
|
||||||
|
|
||||||
|
\section2 Low latency sound effects
|
||||||
|
|
||||||
|
In addition to the raw access to sound devices described above, the QSoundEffect class (and
|
||||||
|
\l {SoundEffect} QML type) offers a slightly higher level way to play
|
||||||
|
sounds. These classes allow you to specify a WAV format file which can
|
||||||
|
then be played with low latency when necessary. Both QSoundEffect and
|
||||||
|
SoundEffect have essentially the same API.
|
||||||
|
|
||||||
|
You can adjust the number of \l {QSoundEffect::loops}{loops} a sound effect is played, as well as
|
||||||
|
the \l {QSoundEffect::setVolume()}{volume} (or \l {QSoundEffect::setMuted()}{muting}) of the effect.
|
||||||
|
|
||||||
|
For older, Qt 4.x based applications \l QSound is also available. Applications
|
||||||
|
are recommended to use QSoundEffect where possible.
|
||||||
|
|
||||||
|
\section2 Monitoring audio data during playback or recording
|
||||||
|
|
||||||
|
The \l QAudioProbe class allows you to monitor audio data being played or
|
||||||
|
recorded in the higher level classes like \l QMediaPlayer, \l QCamera and
|
||||||
|
\l QAudioRecorder. After creating your high level class, you can simply
|
||||||
|
set the source of the probe to your class, and receive audio buffers as they
|
||||||
|
are processed. This is useful for several audio processing tasks, particularly
|
||||||
|
for visualization or adjusting gain. You cannot modify the buffers, and
|
||||||
|
they may arrive at a slightly different time than the media pipeline
|
||||||
|
processes them.
|
||||||
|
|
||||||
|
Here's an example of installing a probe during recording:
|
||||||
|
\snippet doc/src/snippets/multimedia-snippets/media.cpp Audio probe
|
||||||
|
|
||||||
\section2 Low level audio playback and recording
|
\section2 Low level audio playback and recording
|
||||||
Qt Multimedia offers classes for raw access to audio input and output
|
Qt Multimedia offers classes for raw access to audio input and output
|
||||||
facilities, allowing applications to receive raw data from devices like
|
facilities, allowing applications to receive raw data from devices like
|
||||||
@@ -65,35 +114,6 @@ In \c push mode, the audio device provides a QIODevice instance that
|
|||||||
can be written or read to as needed. Typically this results in simpler
|
can be written or read to as needed. Typically this results in simpler
|
||||||
code but more buffering, which may affect latency.
|
code but more buffering, which may affect latency.
|
||||||
|
|
||||||
\section2 Low latency sound effects
|
|
||||||
|
|
||||||
In addition to the raw access to sound devices described above, the QSoundEffect class (and
|
|
||||||
\l {SoundEffect} QML type) offers a slightly higher level way to play
|
|
||||||
sounds. These classes allow you to specify a WAV format file which can
|
|
||||||
then be played with low latency when necessary. Both QSoundEffect and
|
|
||||||
SoundEffect have essentially the same API.
|
|
||||||
|
|
||||||
You can adjust the number of \l {QSoundEffect::loops}{loops} a sound effect is played, as well as
|
|
||||||
the \l {QSoundEffect::setVolume()}{volume} (or \l {QSoundEffect::setMuted()}{muting}) of the effect.
|
|
||||||
|
|
||||||
For older, Qt 4.x based applications \l QSound is also available. Applications
|
|
||||||
are recommended to use QSoundEffect where possible.
|
|
||||||
|
|
||||||
\section2 Playing compressed audio
|
|
||||||
For playing media or audio files that are not simple, raw audio, you can
|
|
||||||
use the \l QMediaPlayer C++ class, or the \l {Audio} and \l {MediaPlayer} QML types.
|
|
||||||
The QMediaPlayer class and associated QML types are also capable of playing
|
|
||||||
\l{multimedia-playing-video}{video}, if required. The compressed audio formats supported does depend
|
|
||||||
on the operating system environment, and also what media plugins the user
|
|
||||||
may have installed.
|
|
||||||
|
|
||||||
Here is how you play a local file using C++:
|
|
||||||
|
|
||||||
\snippet doc/src/snippets/multimedia-snippets/media.cpp Local playback
|
|
||||||
|
|
||||||
You can also put files (even remote URLs) into a playlist:
|
|
||||||
\snippet doc/src/snippets/multimedia-snippets/media.cpp Audio playlist
|
|
||||||
|
|
||||||
\section2 Decoding compressed audio to memory
|
\section2 Decoding compressed audio to memory
|
||||||
In some cases you may want to decode a compressed audio file and do further
|
In some cases you may want to decode a compressed audio file and do further
|
||||||
processing yourself (like mix multiple samples, or some custom digital signal
|
processing yourself (like mix multiple samples, or some custom digital signal
|
||||||
@@ -108,26 +128,6 @@ Here's an example of decoding a local file:
|
|||||||
Note: This API is preliminary at this time - the API may change or be
|
Note: This API is preliminary at this time - the API may change or be
|
||||||
removed before the final 5.0 release.
|
removed before the final 5.0 release.
|
||||||
|
|
||||||
\section2 Recording audio to a file
|
|
||||||
For recording audio to a file, the \l {QAudioRecorder} class allows you
|
|
||||||
to compress audio data from an input device and record it.
|
|
||||||
|
|
||||||
\snippet doc/src/snippets/multimedia-snippets/media.cpp Audio recorder
|
|
||||||
|
|
||||||
\section2 Monitoring audio data during playback or recording
|
|
||||||
|
|
||||||
The \l QAudioProbe class allows you to monitor audio data being played or
|
|
||||||
recorded in the higher level classes like \l QMediaPlayer, \l QCamera and
|
|
||||||
\l QAudioRecorder. After creating your high level class, you can simply
|
|
||||||
set the source of the probe to your class, and receive audio buffers as they
|
|
||||||
are processed. This is useful for several audio processing tasks, particularly
|
|
||||||
for visualization or adjusting gain. You cannot modify the buffers, and
|
|
||||||
they may arrive at a slightly different time than the media pipeline
|
|
||||||
processes them.
|
|
||||||
|
|
||||||
Here's an example of installing a probe during recording:
|
|
||||||
\snippet doc/src/snippets/multimedia-snippets/media.cpp Audio probe
|
|
||||||
|
|
||||||
\section1 Examples
|
\section1 Examples
|
||||||
|
|
||||||
There are both C++ and QML examples available.
|
There are both C++ and QML examples available.
|
||||||
|
|||||||
Reference in New Issue
Block a user