示范程序:录音并储存音讯档
「CIOS音讯核心」录音并储存音讯档的方式极为简单,仅需一行程序。bool MediaRecord (char * filename ,
int milliseconds = 60000 ,
int samplerate = 44100 ,
int channels = 1 ,
int inputDevice = -1 ,
int encodeDevice = -1 ,
int latency = 500 ,
Debugger * debugger = NULL ) ;
#include "CiosAudio.hpp"
int main(int argc,char * argv[])
{
if (argc<2) return 0 ;
CiosAudio::MediaRecord(argv[1]) ;
return 1 ;
}
MediaRecord参数说明
参数 |
说明 |
filename |
录音文件名称。 |
milliseconds |
录音时间(微秒),如果小于0或等于0,则会无限期地录音下去,直到用户由 外部强制中断。 |
samplerate |
取样频率。 |
channels |
声道数量。 |
inputDevice |
音讯输入设备编号,必须是实际的麦克风或网路音讯设备。 |
encodeDevice |
压缩编码的设备,必须是实际的文件压缩设备或是网路音讯设备。 |
latency |
输入到输出的延迟时间。 音讯输入基本上是先储存到缓冲区,然后才由音讯输出设备读取以后播放。 这个参数设定音讯输入设备启动的时间与音讯输出设备启动的时间的差值。 |
debugger |
除错物件。一般使用者不想要除错的话,仅需给予NULL参数即可。 |
CaPlay当中的示范程序
int Recorder(int argc,char ** argv)
{
int ms = 60000 ;
int id = -1 ;
int od = -1 ;
int i = 2 ;
int samplerate = 8000 ;
int channels = 1 ;
int latency = 500 ;
Debugger * debugger = NULL ;
////////////////////////////////////////////////////////////////////////////
while ( i < argc ) {
if ( 0 == strcmp(argv[i],"--time") ) {
i++ ;
ms = atoi(argv[i]) ;
i++ ;
} else
if ( 0 == strcmp(argv[i],"--samplerate") ) {
i++ ;
samplerate = atoi(argv[i]) ;
i++ ;
} else
if ( 0 == strcmp(argv[i],"--channels") ) {
i++ ;
channels = atoi(argv[i]) ;
i++ ;
} else
if ( 0 == strcmp(argv[i],"--latency") ) {
i++ ;
latency = atoi(argv[i]) ;
i++ ;
} else
if ( 0 == strcmp(argv[i],"--output") ) {
i++ ;
od = atoi(argv[i]) ;
i++ ;
} else
if ( 0 == strcmp(argv[i],"--input") ) {
i++ ;
id = atoi(argv[i]) ;
i++ ;
} else
if ( 0 == strcmp(argv[i],"--debug" ) ) {
if ( NULL == debugger ) {
debugger = new Debugger ( ) ;
} ;
i++ ;
} else {
char * filename = argv [ i ] ;
i++ ;
MediaRecord(filename,ms,samplerate,channels,id,od,latency,debugger) ;
} ;
} ;
////////////////////////////////////////////////////////////////////////////
if ( NULL != debugger ) delete debugger ;
////////////////////////////////////////////////////////////////////////////
return 1 ;
}