Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QAudioInput类提供用于从音频输入设备接收音频数据的接口。More...
继承QObject。
该QAudioInput类提供用于从音频输入设备接收音频数据的接口。
可以构造与系统的音频输入default audio input device。它也可能与特定的创建QAudioInputQAudioDeviceInfo。当您创建了音频输入,你也应该送的QAudioFormat用于记录(见QAudioFormat类描述详情) 。
要录制到一个文件:
QAudioInput让您录制音频,音频输入设备。这个类的默认构造函数将使用系统默认的音频设备,但您也可以指定一个QAudioDeviceInfo对于特定的设备。您还需要通过在QAudioFormat要在其中进行录制。
启动了QAudioInput是简单地调用的问题start( )与QIODevice打开以进行写入。例如,记录到一个文件中,您可以:
QFile outputFile; // class member. QAudioInput *audioInput; // class member. ... void startRecording() { outputFile.setFileName("/tmp/test.raw"); outputFile.open( QIODevice.WriteOnly | QIODevice.Truncate ); QAudioFormat format; // set up the format you want, eg. format.setFrequency(8000); format.setChannels(1); format.setSampleSize(8); 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 try to use nearest"; format = info.nearestFormat(format); } audioInput = new QAudioInput(format, this); QTimer.singleShot(3000, this, SLOT(stopRecording())); audioInput->start(&outputFile); // Records audio for 3000ms }
如果指定的格式是支持的输入设备即会开始拍摄(你可以通过检查QAudioDeviceInfo.isFormatSupported( ) 。万一有任何障碍,则使用error( )函数来检查哪里出了问题。我们在停止录制stopRecording()插槽。
void stopRecording() { audioInput->stop(); outputFile.close(); delete audioInput; }
在任何时间点, QAudioInput将在四种状态之一:主动,暂停,停止或閒置。这些状态是由指定的QAudio.State枚举。您可以直接通过请求状态变化suspend( )resume( )stop( )reset()和start( ) 。当前状态被报告的state( ) 。QAudioOutput也将标志着你当状态变化(stateChanged())。
QAudioInput提供测量时间的几种方法以来已经经过的start记录的() 。该processedUSecs()函数返回流的长度以书面微秒,即,它留下了时代的音频输入被暂停或閒置。该elapsedUSecs( )函数返回自所经过的时间start( )被调用,无论哪种状态下QAudioInput已经英寸的
如果发生错误,您可以获取其原因与error( ) 。可能的错误的原因是由所描述的QAudio.Error枚举。该QAudioInput将进入StoppedState当遇到错误。连接到stateChanged( )信号来处理错误:
void stateChanged(QAudio.State newState) { switch(newState) { case QAudio.StoppedState: if (audioInput->error() != QAudio.NoError) { // Perform error handling } else { } break;
在Symbian ,它使用这个类的进程必须有UserEnvironment平台的安全能力。如果客户端程序缺乏这种能力,调用任过载start( )将失败。此故障是由QAudioInput对象设置表示其error( )值QAudio.OpenError然后散发出stateChanged(QAudio.StoppedState)信号。
平台的安全功能是通过添加TARGET.CAPABILITYqmake的变量。
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个新的音频输入,并将它附加到parent。默认的音频输入设备是用来与输出format参数。
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个新的音频输入,并将它附加到parent。通过引用的设备audioDevice用于与所述输入format参数。
返回以毫秒为单位的音频缓冲器的大小。
如果之前调用start( ) ,返回平台的默认值。如果之前调用start(),但setBufferSize( )之前被调用,返回值被设置setBufferSize( ) 。如果所谓的后start()时,返回所使用的实际的缓冲区大小。这可能不是通过预先设定的setBufferSize( ) 。
See also setBufferSize( ) 。
返回的音频数据提供给读出以字节为单位的量。
注:返回值是唯一有效的,而在QAudio.ActiveState or QAudio.IdleState状态,否则返回零。
返回微秒,因为start( )被调用,包括时间,空閒和待机状态。
返回的错误状态。
返回QAudioFormat被使用。
返回以毫秒为单位的通知时间间隔。
See also setNotifyInterval( ) 。
返回以字节为单位的周期大小。
注:这是在字节读取的所建议的大小。
返回音频数据的自处理的量start( )被调用以微秒为单位。
滴在缓冲区所有的音频数据,缓冲区复位到零。
恢复后处理音频数据suspend( ) 。
Sets error()来QAudio.NoError。套state()来QAudio.ActiveState如果您以前调用start (QIODevice*)。套state()来QAudio.IdleState如果您以前叫start( ) 。发射stateChanged()信号。
设置音频缓冲区的大小为value毫秒。
注:此功能可以在任何时候之前调用start( ) ,调用此之后将被忽略start( ) 。它不应该被假定缓冲区的大小设置为实际使用的缓冲区大小,调用bufferSize()后随时start()将返回所用的实际的缓冲区大小。
See also bufferSize( ) 。
设置的时间间隔notify()信号被发射。这是基于ms处理不实际的实时音频数据。定时器的最小分辨率为特定平台和值应进行检查notifyInterval( )确认正在使用的实际值。
See also notifyInterval( ) 。
使用device作为QIODevice来传输数据。传递QIODevice允许数据被无任何额外的代码传输。所有需要的是打开QIODevice。QAudioInput不采取所有权device。
该QAudioInput将数据写入设备时,新的数据是可用的。你可以继承QIODevice并重新实现writeData()如果你想访问的数据。如果您只是想将数据保存到一个文件中,你可以通过一个QFile此功能。
如果能够成功地获得音频数据从系统音频设备state()被设置为QAudio.ActiveState or QAudio.IdleState,error( )被设置为QAudio.NoError和stateChanged()信号被发射。
如果在这个过程中发生问题的error( )被设置为QAudio.OpenError,state( )被设置为QAudio.StoppedState和stateChanged()信号被发射。
QAudioInput#Symbian Platform Security Requirements
See also QIODevice。
返回一个指针,一个新的QIODevice将用于处理数据传输。这QIODevice可用于read()音频数据直接。你通常会连接到readyRead()信号,并从该设备中的时隙读取您连接到。QAudioInput保持设备的所有权。
如果能够访问该系统音频设备的state( )被设置为QAudio.IdleState,error( )被设置为QAudio.NoError和stateChanged()信号被发射。
如果在这个过程中发生问题的error( )被设置为QAudio.OpenError,state( )被设置为QAudio.StoppedState和stateChanged()信号被发射。
QAudioInput#Symbian Platform Security Requirements
See also QIODevice。
返回音频处理的状态。
停止音频输入,从系统资源分离。
Sets error()来QAudio.NoError,state()来QAudio.StoppedState并放出stateChanged()信号。
停止处理的音频数据,保存缓冲音频数据。
Sets error()来QAudio.NoError,state()来QAudio.SuspendedState并放出stateChanged()信号。
这是该信号的默认超载。
当音频数据x毫秒已被处理的时间间隔由setNotifyInterval ( x)的设置这个信号被发射。
这是该信号的默认超载。
这个信号被发射时,该设备state已经改变。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |