• 首页
  • 文件
  • 下载
  • 状态
  • 常见问题
  • 邮件列表
  • 应用程序
  • 外部链结
  • 版权
  • 志愿者
  • 联络

示范程序:录音并储存音讯档

「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 ;
}

「CIOS音讯核心」会自动猜测您的文件压缩编码格式。如果您想要使用线绪来录音,请参考《示范程序:播放音讯档》当中的介绍。

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                                                                   ;
}