範例程式:錄音並儲存音訊檔
「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 ;
}