File: qaudioinput.html

package info (click to toggle)
python-qt4 4.12.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 40,300 kB
  • ctags: 6,185
  • sloc: python: 125,988; cpp: 13,291; xml: 292; makefile: 246; php: 27; sh: 2
file content (242 lines) | stat: -rw-r--r-- 23,008 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html><head><title>QAudioInput Class Reference</title><style>h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
td.postheader { font-family: sans-serif }
tr.address { font-family: sans-serif }
body { background: #ffffff; color: black; }
</style></head><body><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr /><td align="left" valign="top" width="32"><img align="left" border="0" height="32" src="images/rb-logo.png" width="32" /></td><td width="1">&#160;&#160;</td><td class="postheader" valign="center"><a href="index.html"><font color="#004faf">Home</font></a>&#160;&#183; <a href="classes.html"><font color="#004faf">All Classes</font></a>&#160;&#183; <a href="modules.html"><font color="#004faf">Modules</font></a></td></table><h1 align="center">QAudioInput Class Reference<br /><sup><sup>[<a href="qtmultimedia.html">QtMultimedia</a> module]</sup></sup></h1><p>The QAudioInput class provides an interface for receiving audio
data from an audio input device. <a href="#details">More...</a></p>

<p>Inherits <a href="qobject.html">QObject</a>.</p><h3>Methods</h3><ul><li><div class="fn" /><b><a href="qaudioinput.html#QAudioInput">__init__</a></b> (<i>self</i>, QAudioFormat&#160;<i>format</i>&#160;=&#160;QAudioFormat(), QObject&#160;<i>parent</i>&#160;=&#160;None)</li><li><div class="fn" /><b><a href="qaudioinput.html#QAudioInput-2">__init__</a></b> (<i>self</i>, QAudioDeviceInfo&#160;<i>audioDevice</i>, QAudioFormat&#160;<i>format</i>&#160;=&#160;QAudioFormat(), QObject&#160;<i>parent</i>&#160;=&#160;None)</li><li><div class="fn" />int <b><a href="qaudioinput.html#bufferSize">bufferSize</a></b> (<i>self</i>)</li><li><div class="fn" />int <b><a href="qaudioinput.html#bytesReady">bytesReady</a></b> (<i>self</i>)</li><li><div class="fn" />int <b><a href="qaudioinput.html#elapsedUSecs">elapsedUSecs</a></b> (<i>self</i>)</li><li><div class="fn" />QAudio.Error <b><a href="qaudioinput.html#error">error</a></b> (<i>self</i>)</li><li><div class="fn" />QAudioFormat <b><a href="qaudioinput.html#format">format</a></b> (<i>self</i>)</li><li><div class="fn" />int <b><a href="qaudioinput.html#notifyInterval">notifyInterval</a></b> (<i>self</i>)</li><li><div class="fn" />int <b><a href="qaudioinput.html#periodSize">periodSize</a></b> (<i>self</i>)</li><li><div class="fn" />int <b><a href="qaudioinput.html#processedUSecs">processedUSecs</a></b> (<i>self</i>)</li><li><div class="fn" /><b><a href="qaudioinput.html#reset">reset</a></b> (<i>self</i>)</li><li><div class="fn" /><b><a href="qaudioinput.html#resume">resume</a></b> (<i>self</i>)</li><li><div class="fn" /><b><a href="qaudioinput.html#setBufferSize">setBufferSize</a></b> (<i>self</i>, int&#160;<i>bytes</i>)</li><li><div class="fn" /><b><a href="qaudioinput.html#setNotifyInterval">setNotifyInterval</a></b> (<i>self</i>, int&#160;<i>milliSeconds</i>)</li><li><div class="fn" /><b><a href="qaudioinput.html#start">start</a></b> (<i>self</i>, QIODevice&#160;<i>device</i>)</li><li><div class="fn" />QIODevice <b><a href="qaudioinput.html#start-2">start</a></b> (<i>self</i>)</li><li><div class="fn" />QAudio.State <b><a href="qaudioinput.html#state">state</a></b> (<i>self</i>)</li><li><div class="fn" /><b><a href="qaudioinput.html#stop">stop</a></b> (<i>self</i>)</li><li><div class="fn" /><b><a href="qaudioinput.html#suspend">suspend</a></b> (<i>self</i>)</li></ul><h3>Qt Signals</h3><ul><li><div class="fn" />void <b><a href="qaudioinput.html#notify">notify</a></b> ()</li><li><div class="fn" />void <b><a href="qaudioinput.html#stateChanged">stateChanged</a></b> ( ::QAudio::State)</li></ul><a name="details" /><hr /><h2>Detailed Description</h2><p>The QAudioInput class provides an interface for receiving audio
data from an audio input device.</p>
<p>You can construct an audio input with the system's <a href="qaudiodeviceinfo.html#defaultInputDevice">default audio input
device</a>. It is also possible to create QAudioInput with a
specific <a href="qaudiodeviceinfo.html">QAudioDeviceInfo</a>. When
you create the audio input, you should also send in the <a href="qaudioformat.html">QAudioFormat</a> to be used for the recording
(see the <a href="qaudioformat.html">QAudioFormat</a> class
description for details).</p>
<p>To record to a file:</p>
<p>QAudioInput lets you record audio with an audio input device.
The default constructor of this class will use the systems default
audio device, but you can also specify a <a href="qaudiodeviceinfo.html">QAudioDeviceInfo</a> for a specific device.
You also need to pass in the <a href="qaudioformat.html">QAudioFormat</a> in which you wish to
record.</p>
<p>Starting up the QAudioInput is simply a matter of calling
<a href="qaudioinput.html#start">start</a>() with a <a href="qiodevice.html">QIODevice</a> opened for writing. For instance, to
record to a file, you can:</p>
<pre class="cpp">
     <span class="type"><a href="qfile.html">QFile</a></span> outputFile;         <span class="comment">// class member.</span>
     <span class="type">QAudioInput</span> <span class="operator">*</span>audioInput;  <span class="comment">// class member.</span>
     ...
     <span class="type">void</span> startRecording()
     {
         outputFile<span class="operator">.</span>setFileName(<span class="string">"/tmp/test.raw"</span>);
         outputFile<span class="operator">.</span>open( <span class="type"><a href="qiodevice.html">QIODevice</a></span><span class="operator">.</span>WriteOnly <span class="operator">|</span> <span class="type"><a href="qiodevice.html">QIODevice</a></span><span class="operator">.</span>Truncate );

         <span class="type"><a href="qaudioformat.html">QAudioFormat</a></span> format;
         <span class="comment">// set up the format you want, eg.</span>
         format<span class="operator">.</span>setFrequency(<span class="number">8000</span>);
         format<span class="operator">.</span>setChannels(<span class="number">1</span>);
         format<span class="operator">.</span>setSampleSize(<span class="number">8</span>);
         format<span class="operator">.</span>setCodec(<span class="string">"audio/pcm"</span>);
         format<span class="operator">.</span>setByteOrder(<span class="type"><a href="qaudioformat.html">QAudioFormat</a></span><span class="operator">.</span>LittleEndian);
         format<span class="operator">.</span>setSampleType(<span class="type"><a href="qaudioformat.html">QAudioFormat</a></span><span class="operator">.</span>UnSignedInt);

         <span class="type"><a href="qaudiodeviceinfo.html">QAudioDeviceInfo</a></span> info <span class="operator">=</span> <span class="type"><a href="qaudiodeviceinfo.html">QAudioDeviceInfo</a></span><span class="operator">.</span>defaultInputDevice();
         <span class="keyword">if</span> (<span class="operator">!</span>info<span class="operator">.</span>isFormatSupported(format)) {
             <a href="qtcore.html#qWarning">qWarning</a>()<span class="operator">&lt;</span><span class="operator">&lt;</span><span class="string">"default format not supported try to use nearest"</span>;
             format <span class="operator">=</span> info<span class="operator">.</span>nearestFormat(format);
         }

         audioInput <span class="operator">=</span> <span class="keyword">new</span> <span class="type">QAudioInput</span>(format<span class="operator">,</span> <span class="keyword">this</span>);
         <span class="type"><a href="qtimer.html">QTimer</a></span><span class="operator">.</span>singleShot(<span class="number">3000</span><span class="operator">,</span> <span class="keyword">this</span><span class="operator">,</span> SLOT(stopRecording()));
         audioInput<span class="operator">-</span><span class="operator">&gt;</span>start(<span class="operator">&amp;</span>outputFile);
         <span class="comment">// Records audio for 3000ms</span>
     }
</pre>
<p>This will start recording if the format specified is supported
by the input device (you can check this with <a href="qaudiodeviceinfo.html#isFormatSupported">QAudioDeviceInfo.isFormatSupported</a>().
In case there are any snags, use the <a href="qaudioinput.html#error">error</a>() function to check what went
wrong. We stop recording in the <tt>stopRecording()</tt> slot.</p>
<pre class="cpp">
     <span class="type">void</span> stopRecording()
     {
         audioInput<span class="operator">-</span><span class="operator">&gt;</span>stop();
         outputFile<span class="operator">.</span>close();
         <span class="keyword">delete</span> audioInput;
     }
</pre>
<p>At any point in time, QAudioInput will be in one of four states:
active, suspended, stopped, or idle. These states are specified by
the <a href="qaudio.html#State-enum">QAudio.State</a> enum. You
can request a state change directly through <a href="qaudioinput.html#suspend">suspend</a>(), <a href="qaudioinput.html#resume">resume</a>(), <a href="qaudioinput.html#stop">stop</a>(), <a href="qaudioinput.html#reset">reset</a>(), and <a href="qaudioinput.html#start">start</a>(). The current state is reported
by <a href="qaudioinput.html#state">state</a>(). <a href="qaudiooutput.html">QAudioOutput</a> will also signal you when the
state changes (<a href="qaudioinput.html#stateChanged">stateChanged</a>()).</p>
<p>QAudioInput provides several ways of measuring the time that has
passed since the <a href="qaudioinput.html#start">start</a>() of
the recording. The <tt>processedUSecs()</tt> function returns the
length of the stream in microseconds written, i.e., it leaves out
the times the audio input was suspended or idle. The <a href="qaudioinput.html#elapsedUSecs">elapsedUSecs</a>() function returns
the time elapsed since <a href="qaudioinput.html#start">start</a>()
was called regardless of which states the QAudioInput has been
in.</p>
<p>If an error should occur, you can fetch its reason with <a href="qaudioinput.html#error">error</a>(). The possible error reasons
are described by the <a href="qaudio.html#Error-enum">QAudio.Error</a> enum. The QAudioInput
will enter the <a href="qaudio.html#State-enum">StoppedState</a>
when an error is encountered. Connect to the <a href="qaudioinput.html#stateChanged">stateChanged</a>() signal to handle
the error:</p>
<pre class="cpp">
     <span class="type">void</span> stateChanged(<span class="type"><a href="qaudio.html">QAudio</a></span><span class="operator">.</span>State newState)
     {
         <span class="keyword">switch</span>(newState) {
             <span class="keyword">case</span> <span class="type"><a href="qaudio.html">QAudio</a></span><span class="operator">.</span>StoppedState:
             <span class="keyword">if</span> (audioInput<span class="operator">-</span><span class="operator">&gt;</span>error() <span class="operator">!</span><span class="operator">=</span> <span class="type"><a href="qaudio.html">QAudio</a></span><span class="operator">.</span>NoError) {
                  <span class="comment">// Perform error handling</span>
             } <span class="keyword">else</span> {

             }
             <span class="keyword">break</span>;
</pre>
<a id="symbian-platform-security-requirements" name="symbian-platform-security-requirements" />
<h3>Symbian Platform Security Requirements</h3>
<p>On Symbian, processes which use this class must have the
<tt>UserEnvironment</tt> platform security capability. If the
client process lacks this capability, calls to either overload of
<a href="qaudioinput.html#start">start</a>() will fail. This
failure is indicated by the QAudioInput object setting its <a href="qaudioinput.html#error">error</a>() value to <a href="qaudio.html#Error-enum">QAudio.OpenError</a> and then emitting a
<a href="qaudioinput.html#stateChanged">stateChanged</a>(<a href="qaudio.html#State-enum">QAudio.StoppedState</a>) signal.</p>
<p>Platform security capabilities are added via the <a href="qmake-variable-reference.html#target-capability">TARGET.CAPABILITY</a>
qmake variable.</p>
<hr /><h2>Method Documentation</h2><h3 class="fn"><a name="QAudioInput" />QAudioInput.__init__ (<i>self</i>, <a href="qaudioformat.html">QAudioFormat</a>&#160;<i>format</i>&#160;=&#160;QAudioFormat(), <a href="qobject.html">QObject</a>&#160;<i>parent</i>&#160;=&#160;None)</h3><p>The <i>parent</i> argument, if not None, causes <i>self</i> to be owned by Qt instead of PyQt.</p><p>Construct a new audio input and attach it to <i>parent</i>. The
default audio input device is used with the output <i>format</i>
parameters.</p>


<h3 class="fn"><a name="QAudioInput-2" />QAudioInput.__init__ (<i>self</i>, <a href="qaudiodeviceinfo.html">QAudioDeviceInfo</a>&#160;<i>audioDevice</i>, <a href="qaudioformat.html">QAudioFormat</a>&#160;<i>format</i>&#160;=&#160;QAudioFormat(), <a href="qobject.html">QObject</a>&#160;<i>parent</i>&#160;=&#160;None)</h3><p>The <i>parent</i> argument, if not None, causes <i>self</i> to be owned by Qt instead of PyQt.</p><p>Construct a new audio input and attach it to <i>parent</i>. The
device referenced by <i>audioDevice</i> is used with the input
<i>format</i> parameters.</p>


<h3 class="fn"><a name="bufferSize" />int QAudioInput.bufferSize (<i>self</i>)</h3><p>Returns the audio buffer size in milliseconds.</p>
<p>If called before <a href="qaudioinput.html#start">start</a>(),
returns platform default value. If called before <a href="qaudioinput.html#start">start</a>() but <a href="qaudioinput.html#setBufferSize">setBufferSize</a>() was called
prior, returns value set by <a href="qaudioinput.html#setBufferSize">setBufferSize</a>(). If called
after <a href="qaudioinput.html#start">start</a>(), returns the
actual buffer size being used. This may not be what was set
previously by <a href="qaudioinput.html#setBufferSize">setBufferSize</a>().</p>
<p><b>See also</b> <a href="qaudioinput.html#setBufferSize">setBufferSize</a>().</p>


<h3 class="fn"><a name="bytesReady" />int QAudioInput.bytesReady (<i>self</i>)</h3><p>Returns the amount of audio data available to read in bytes.</p>
<p>NOTE: returned value is only valid while in <a href="qaudio.html#State-enum">QAudio.ActiveState</a> or <a href="qaudio.html#State-enum">QAudio.IdleState</a> state, otherwise
returns zero.</p>


<h3 class="fn"><a name="elapsedUSecs" />int QAudioInput.elapsedUSecs (<i>self</i>)</h3><p>Returns the microseconds since <a href="qaudioinput.html#start">start</a>() was called, including time in
Idle and Suspend states.</p>


<h3 class="fn"><a name="error" /><a href="qaudio.html#Error-enum">QAudio.Error</a> QAudioInput.error (<i>self</i>)</h3><p>Returns the error state.</p>


<h3 class="fn"><a name="format" /><a href="qaudioformat.html">QAudioFormat</a> QAudioInput.format (<i>self</i>)</h3><p>Returns the <a href="qaudioformat.html">QAudioFormat</a> being
used.</p>


<h3 class="fn"><a name="notifyInterval" />int QAudioInput.notifyInterval (<i>self</i>)</h3><p>Returns the notify interval in milliseconds.</p>
<p><b>See also</b> <a href="qaudioinput.html#setNotifyInterval">setNotifyInterval</a>().</p>


<h3 class="fn"><a name="periodSize" />int QAudioInput.periodSize (<i>self</i>)</h3><p>Returns the period size in bytes.</p>
<p>Note: This is the recommended read size in bytes.</p>


<h3 class="fn"><a name="processedUSecs" />int QAudioInput.processedUSecs (<i>self</i>)</h3><p>Returns the amount of audio data processed since <a href="qaudioinput.html#start">start</a>() was called in
microseconds.</p>


<h3 class="fn"><a name="reset" />QAudioInput.reset (<i>self</i>)</h3><p>Drops all audio data in the buffers, resets buffers to zero.</p>


<h3 class="fn"><a name="resume" />QAudioInput.resume (<i>self</i>)</h3><p>Resumes processing audio data after a <a href="qaudioinput.html#suspend">suspend</a>().</p>
<p>Sets <a href="qaudioinput.html#error">error</a>() to <a href="qaudio.html#Error-enum">QAudio.NoError</a>. Sets <a href="qaudioinput.html#state">state</a>() to <a href="qaudio.html#State-enum">QAudio.ActiveState</a> if you previously
called start(<a href="qiodevice.html">QIODevice</a>*). Sets
<a href="qaudioinput.html#state">state</a>() to <a href="qaudio.html#State-enum">QAudio.IdleState</a> if you previously
called <a href="qaudioinput.html#start">start</a>(). emits <a href="qaudioinput.html#stateChanged">stateChanged</a>() signal.</p>


<h3 class="fn"><a name="setBufferSize" />QAudioInput.setBufferSize (<i>self</i>, int&#160;<i>bytes</i>)</h3><p>Sets the audio buffer size to <i>value</i> milliseconds.</p>
<p>Note: This function can be called anytime before <a href="qaudioinput.html#start">start</a>(), calls to this are ignored
after <a href="qaudioinput.html#start">start</a>(). It should not
be assumed that the buffer size set is the actual buffer size used,
calling <a href="qaudioinput.html#bufferSize">bufferSize</a>()
anytime after <a href="qaudioinput.html#start">start</a>() will
return the actual buffer size being used.</p>
<p><b>See also</b> <a href="qaudioinput.html#bufferSize">bufferSize</a>().</p>


<h3 class="fn"><a name="setNotifyInterval" />QAudioInput.setNotifyInterval (<i>self</i>, int&#160;<i>milliSeconds</i>)</h3><p>Sets the interval for <a href="qaudioinput.html#notify">notify</a>() signal to be emitted. This
is based on the <i>ms</i> of audio data processed not on actual
real-time. The minimum resolution of the timer is platform specific
and values should be checked with <a href="qaudioinput.html#notifyInterval">notifyInterval</a>() to confirm
actual value being used.</p>
<p><b>See also</b> <a href="qaudioinput.html#notifyInterval">notifyInterval</a>().</p>


<h3 class="fn"><a name="start" />QAudioInput.start (<i>self</i>, <a href="qiodevice.html">QIODevice</a>&#160;<i>device</i>)</h3><p>Uses the <i>device</i> as the <a href="qiodevice.html">QIODevice</a> to transfer data. Passing a <a href="qiodevice.html">QIODevice</a> allows the data to be transferred
without any extra code. All that is required is to open the
<a href="qiodevice.html">QIODevice</a>. <a href="qaudioinput.html">QAudioInput</a> does not take ownership of
<i>device</i>.</p>
<p>The <a href="qaudioinput.html">QAudioInput</a> will write to the
device when new data is available. You can subclass <a href="qiodevice.html">QIODevice</a> and reimplement <a href="qiodevice.html#writeData">writeData()</a> if you wish to access
the data. If you simply want to save data to a file, you can pass a
<a href="qfile.html">QFile</a> to this function.</p>
<p>If able to successfully get audio data from the systems audio
device the <a href="qaudioinput.html#state">state</a>() is set to
either <a href="qaudio.html#State-enum">QAudio.ActiveState</a> or
<a href="qaudio.html#State-enum">QAudio.IdleState</a>, <a href="qaudioinput.html#error">error</a>() is set to <a href="qaudio.html#Error-enum">QAudio.NoError</a> and the <a href="qaudioinput.html#stateChanged">stateChanged</a>() signal is
emitted.</p>
<p>If a problem occurs during this process the <a href="qaudioinput.html#error">error</a>() is set to <a href="qaudio.html#Error-enum">QAudio.OpenError</a>, <a href="qaudioinput.html#state">state</a>() is set to <a href="qaudio.html#State-enum">QAudio.StoppedState</a> and <a href="qaudioinput.html#stateChanged">stateChanged</a>() signal is
emitted.</p>
<p><a href="qaudioinput.html#symbian-platform-security-requirements">QAudioInput#Symbian
Platform Security Requirements</a></p>
<p><b>See also</b> <a href="qiodevice.html">QIODevice</a>.</p>


<h3 class="fn"><a name="start-2" /><a href="qiodevice.html">QIODevice</a> QAudioInput.start (<i>self</i>)</h3><p>Returns a pointer to a new <a href="qiodevice.html">QIODevice</a> that will be used to handle the data
transfer. This <a href="qiodevice.html">QIODevice</a> can be used
to <a href="qiodevice.html#read">read()</a> audio data directly.
You will typically connect to the <a href="qiodevice.html#readyRead">readyRead()</a> signal, and read from
the device in the slot you connect to. <a href="qaudioinput.html">QAudioInput</a> keeps ownership of the
device.</p>
<p>If able to access the systems audio device the <a href="qaudioinput.html#state">state</a>() is set to <a href="qaudio.html#State-enum">QAudio.IdleState</a>, <a href="qaudioinput.html#error">error</a>() is set to <a href="qaudio.html#Error-enum">QAudio.NoError</a> and the <a href="qaudioinput.html#stateChanged">stateChanged</a>() signal is
emitted.</p>
<p>If a problem occurs during this process the <a href="qaudioinput.html#error">error</a>() is set to <a href="qaudio.html#Error-enum">QAudio.OpenError</a>, <a href="qaudioinput.html#state">state</a>() is set to <a href="qaudio.html#State-enum">QAudio.StoppedState</a> and <a href="qaudioinput.html#stateChanged">stateChanged</a>() signal is
emitted.</p>
<p><a href="qaudioinput.html#symbian-platform-security-requirements">QAudioInput#Symbian
Platform Security Requirements</a></p>
<p><b>See also</b> <a href="qiodevice.html">QIODevice</a>.</p>


<h3 class="fn"><a name="state" /><a href="qaudio.html#State-enum">QAudio.State</a> QAudioInput.state (<i>self</i>)</h3><p>Returns the state of audio processing.</p>


<h3 class="fn"><a name="stop" />QAudioInput.stop (<i>self</i>)</h3><p>Stops the audio input, detaching from the system resource.</p>
<p>Sets <a href="qaudioinput.html#error">error</a>() to <a href="qaudio.html#Error-enum">QAudio.NoError</a>, <a href="qaudioinput.html#state">state</a>() to <a href="qaudio.html#State-enum">QAudio.StoppedState</a> and emit <a href="qaudioinput.html#stateChanged">stateChanged</a>() signal.</p>


<h3 class="fn"><a name="suspend" />QAudioInput.suspend (<i>self</i>)</h3><p>Stops processing audio data, preserving buffered audio data.</p>
<p>Sets <a href="qaudioinput.html#error">error</a>() to <a href="qaudio.html#Error-enum">QAudio.NoError</a>, <a href="qaudioinput.html#state">state</a>() to <a href="qaudio.html#State-enum">QAudio.SuspendedState</a> and emit
<a href="qaudioinput.html#stateChanged">stateChanged</a>()
signal.</p>
<hr /><h2>Qt Signal Documentation</h2><h3 class="fn"><a name="notify" />void notify ()</h3><p>This is the default overload of this signal.</p><p>This signal is emitted when x ms of audio data has been
processed the interval set by setNotifyInterval(x).</p>


<h3 class="fn"><a name="stateChanged" />void stateChanged ( ::QAudio::State)</h3><p>This is the default overload of this signal.</p><p>This signal is emitted when the device <i>state</i> has
changed.</p>


<address><hr /><div align="center"><table border="0" cellspacing="0" width="100%"><tr class="address"><td align="left" width="25%">PyQt&#160;4.12.1 for X11</td><td align="center" width="50%">Copyright &#169; <a href="http://www.riverbankcomputing.com">Riverbank&#160;Computing&#160;Ltd</a> and <a href="http://www.qt.io">The Qt Company</a> 2015</td><td align="right" width="25%">Qt&#160;4.8.7</td></tr></table></div></address></body></html>