亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言使用libZPlay錄制聲音并寫到文件的方法

2020-01-26 15:04:56
字體:
來源:轉載
供稿:網友

本文實例講述了C語言使用libZPlay錄制聲音并寫到文件的方法。分享給大家供大家參考。具體實現方法如下:

/** *  Record samples from line-in and save to out.mp3 * */#define WIN32_LEAN_AND_MEAN#include <windows.h>#include <olectl.h>#include <ole2.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#include <dos.h>#include <conio.h>#include "../include/libzplay.h"using namespace libZPlay;ZPlay* player;int nRate = 100;int nPitch = 100;int nTempo = 100;int fCenterCut = 0;int fSideCut = 0;int fMixChannels = 0;int lVolume = 100;int rVolume = 100;int fPause = 0;int fEcho = 0;int fEq = 0;int fReverse = 0;TStreamStatus status;TStreamTime pos;int main(int argc, char **argv){  // clear screen  system("CLS");  // create class instance  player = CreateZPlay();  // chek if we have class instance  if(player == 0)  {    printf("Error: Can't create class instance !/nPress key to exit./n");    getch();    return 0;    }  // get library version  int ver = player->GetVersion();  // check if we have version 2.00 and above  if(ver < 200)  {    printf("Error: Need library version 2.00 and above !/nPress key to exit./r/n");    getch();    player->Release();    return 0;  }  // display version info  printf("libZPlay v.%i.%02i/r/n/r/n", ver / 100, ver % 100);  printf( "x: play  /tj: fade out  /ti: side cut  /td: pitch down/r/n"        "c: pause  /tk: fade in  /to: center cut /tf: pitch up/r/n"        "v: stop  /tl: loop    /tn: volume down/tg: tempo down/r/n"        "y: rew   /tp: equalizer /tm: volume up /th: tempo up/r/n"        "b: fwd   /te: echo    /ta: rate down /r/n"        "r: reverse /tt: channel mix/ts: rate up  /tq: quit/r/n/r/n");    // open wavein using Line In    if(player->OpenFile("wavein://src=line;volume=50;", sfAutodetect) == 0)    {      printf("Error: %s/nPress key to exit./r/n", player->GetError());      getch();      player->Release();      return 0;    }    // set wave output to disk file, mp3 encoding    if(player->SetWaveOutFile("out.mp3", sfMp3, 1) == 0)    {      printf("Error: %s/nPress key to exit./r/n", player->GetError());      getch();      player->Release();      return 0;    }  // get stream info  TStreamInfo pInfo;  player->GetStreamInfo(&pInfo);  // display info about stream  char *sVbr = "CBR";  if(pInfo.VBR)    sVbr = "VBR";   printf("/r/n%s %i Hz %s Channel: %u Length: %02i:%02i:%02i:%02i/r/n/r/n",      pInfo.Description,      pInfo.SamplingRate,      sVbr,      pInfo.ChannelNumber,      pInfo.Length.hms.hour,      pInfo.Length.hms.minute,      pInfo.Length.hms.second,      pInfo.Length.hms.millisecond);  printf("Status| kbps | POS: |Echo|Equ|Cut|Fade|Rev|Rate|Pitch|Tempo|Vol|Loop|Ch mix|/r/n");  // start playing  if(player->Play() == 0)  {    printf("Error: %s/nPress key to exit./r/n", player->GetError());    player->Release(); // delete ZPlay class    return 0;  }  while(1)  {    // get current status     player->GetStatus(&status);     char *st = 0;    if(status.fPlay)      st = "Play ";    else if(status.fPause)      st = "Pause";    else      st = "Stop ";        // get current position    player->GetPosition(&pos);     printf("%s  %04i %02i:%02i:%02i  %i  %i  %i  %i  %i  %03i %03i  %03i %03i  %i  %i/r",         st,        player->GetBitrate(0),        pos.hms.hour,        pos.hms.minute,        pos.hms.second,        status.fEcho,        status.fEqualizer,        status.fVocalCut,        status.fSlideVolume,        status.fReverse,        player->GetRate(),        player->GetPitch(),        player->GetTempo(),        lVolume,        status.nLoop,        fMixChannels        );    if(kbhit())    {      int a = getch();      switch(a)      {        case 'i':  // side cut          fSideCut = !fSideCut;          player->StereoCut(fSideCut, 1, 0);          fCenterCut = 0;        break;        case 'o':  // center          fCenterCut = !fCenterCut;          player->StereoCut(fCenterCut, 0, 0);          fSideCut = 0;        break;        case 's':  // higher rate          nRate += 5;          player->SetRate(nRate);        break;        case 'a':  // lower rate          nRate -= 5;          if(nRate < 0)            nRate = 0;          player->SetRate(nRate);        break;        case 'd':  // lower pitch          nPitch -= 5;          if(nPitch < 0)            nPitch = 0;          player->SetPitch(nPitch);        break;        case 'f':  // higher pitch          nPitch += 5;          player->SetPitch(nPitch);        break;        case 'g':  // lower tempo          nTempo -= 5;          if(nTempo < 0)            nTempo = 0;          player->SetTempo(nTempo);        break;        case 'h':  // higher tempo          nTempo += 5;          player->SetTempo(nTempo);        break;        case 'r':  // reverse mode          fReverse = !fReverse;          if(player->ReverseMode(fReverse) == 0)          {            printf("Error: %s/n", player->GetError());            fReverse = 0;          }        break;        case 'p':  // enable or disable equalizer        {          fEq = !fEq;          player->EnableEqualizer(fEq);          if(fEq)          {            player->SetEqualizerPreampGain(-100000);            player->SetEqualizerBandGain(0, 104000);            player->SetEqualizerBandGain(1, 104000);            player->SetEqualizerBandGain(2, 104000);          }        }        break;        case 'l': // play loop        {          TStreamTime pCurrentTime;          player->GetPosition(&pCurrentTime);          TStreamTime pEndTime;          pEndTime.ms = pCurrentTime.ms + 5000;          player->PlayLoop(tfMillisecond, &pCurrentTime, tfMillisecond, &pEndTime ,5, 1);        }        break;        case 'j': // fade out volume        {          TStreamTime start;          TStreamTime end;          player->GetPosition(&start);          end.sec = start.sec + 5;          player->SlideVolume( tfSecond, &start, 100,100, tfSecond, &end, 0,0);        }        break;        case 'k': // fade in volume        {          TStreamTime start;          player->GetPosition(&start);          TStreamTime end;          end.sec = start.sec + 5;          player->SlideVolume( tfSecond, &start, 0,0, tfSecond, &end, 100, 100);        }        break;        case 'e': // enable echo        {          fEcho = !fEcho;          player->EnableEcho(fEcho);        }        break;        case 'x': // play          if(player->Play() == 0)            printf("Err: %s/n", player->GetError());          fPause = 0;        break;        case 'v': // stop          player->Stop();          fPause = 0;        break;        case 'c':  // pause          if(fPause)          {            player->Resume();            fPause = 0;          }          else          {            player->Pause();            fPause = 1;          }        break;        case 'y': // jump back 5 seconds        {          TStreamTime pTime;          pTime.sec = 5;          player->Seek(tfSecond, &pTime, smFromCurrentBackward);        }        break;        case 'b': // jump forward 5 seconds        {          TStreamTime pTime;          pTime.sec = 5;          player->Seek(tfSecond, &pTime, smFromCurrentForward);        }        break;        case 't':        {          // mix stereo channels to mono          fMixChannels = !fMixChannels;          player->MixChannels(fMixChannels, 50, 50);        }        break;        case 'n':  // volume down          if(lVolume >= 5)            lVolume -= 5;          if(rVolume >= 5)            rVolume -= 5;          player->SetMasterVolume(lVolume, rVolume);        break;        case 'm':  // volume up          if(lVolume <= 95)            lVolume += 5;          if(rVolume <= 95)            rVolume += 5;          player->SetMasterVolume(lVolume, rVolume);        break;        case 'q':        case 'Q':          player->Release();          return 0;       }    }    Sleep(50);  }}

希望本文所述對大家的C語言程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久男人av资源网站| 国产精品久久一区主播| 欧洲成人免费aa| 国产国语刺激对白av不卡| 欧美黑人巨大精品一区二区| 伊人久久久久久久久久久| 国产香蕉97碰碰久久人人| 欧美做受高潮电影o| 国产精品av网站| 亚洲精品一区久久久久久| 日韩高清电影免费观看完整版| 欧美成人高清视频| 777国产偷窥盗摄精品视频| 欧美激情精品久久久| 久久99久久99精品免观看粉嫩| 久久人人爽人人爽人人片av高请| 亚洲精品国产电影| 中文字幕久热精品视频在线| 国产精品www色诱视频| 岛国av一区二区| 国产精品一区二区久久| 中文字幕欧美日韩精品| 亚洲三级免费看| 日韩中文字幕免费看| 亚洲aⅴ日韩av电影在线观看| 日韩天堂在线视频| 国产精品久久久久久久av电影| 成人午夜在线视频一区| 国产午夜精品视频| 久久九九全国免费精品观看| 欧美精品国产精品日韩精品| 日韩在线观看网站| 欧美日韩免费观看中文| 日韩精品在线观| 欧美亚洲国产成人精品| 最近2019年好看中文字幕视频| 亚洲精品电影网| 国产成人精彩在线视频九色| 日韩欧美亚洲一二三区| 久久这里只有精品99| 亚洲精品suv精品一区二区| 最新的欧美黄色| 国产亚洲日本欧美韩国| 91国在线精品国内播放| 久久综合久久八八| 久久久久久com| 久久精品亚洲精品| 国产成人精品综合| 久久福利视频导航| 亚洲精品久久久一区二区三区| 国产a∨精品一区二区三区不卡| 国产女精品视频网站免费| 亚洲国产美女久久久久| 日韩一级黄色av| 日本欧美在线视频| 欧美午夜性色大片在线观看| 国产精品va在线播放我和闺蜜| 亚洲91精品在线观看| 日韩网站免费观看高清| 日韩一中文字幕| 宅男66日本亚洲欧美视频| 中文字幕亚洲欧美日韩2019| 最新国产精品拍自在线播放| 欧美xxxx14xxxxx性爽| 中文字幕久热精品视频在线| 成人av在线天堂| 日韩在线欧美在线| 国产精品网站入口| 亚洲国产精品va在线观看黑人| 日韩暖暖在线视频| 欧美夫妻性生活xx| 久久全国免费视频| 亚洲综合在线做性| 久久精品中文字幕电影| 国产一区二区三区在线免费观看| 欧美日本国产在线| 亚洲小视频在线观看| 日韩av一区二区在线观看| 最近更新的2019中文字幕| 欧美小视频在线| 国产91成人在在线播放| 久久精品国产欧美亚洲人人爽| 久久亚洲精品成人| 亚洲欧美国产精品va在线观看| 中文字幕综合在线| 欧美在线免费看| 久久精品国产久精国产一老狼| 国产日韩专区在线| 国产国产精品人在线视| 国产成人精品亚洲精品| 亚洲色图17p| 一级做a爰片久久毛片美女图片| 欧美日韩精品在线视频| 成人免费在线网址| 久久人人爽人人| 亚洲午夜未删减在线观看| 欧美一级片一区| 欧美精品一区二区免费| 国产一区二区三区免费视频| 亚州精品天堂中文字幕| 日韩亚洲精品视频| 色在人av网站天堂精品| 亚洲综合在线中文字幕| 中文字幕久久精品| 久久影视三级福利片| 亚洲自拍偷拍第一页| 欧美极品在线视频| 国产成人一区二区三区| 播播国产欧美激情| 中文字幕在线观看亚洲| 亚洲一区国产精品| 成人av.网址在线网站| 亚洲专区中文字幕| 91精品在线看| 国产一区玩具在线观看| 乱亲女秽乱长久久久| 亚洲国产成人爱av在线播放| 欧美视频中文字幕在线| 91在线视频一区| 欧美丰满片xxx777| 疯狂做受xxxx高潮欧美日本| 全亚洲最色的网站在线观看| 日韩中文字幕网| 欧美日韩人人澡狠狠躁视频| 国产精品久久9| 亚洲天堂第二页| 亚洲xxxx视频| 欧美日韩xxxxx| 亚洲人午夜精品| 欧美日本在线视频中文字字幕| 成人中心免费视频| 久久深夜福利免费观看| 欧美成人高清视频| 欧美精品在线免费观看| 日韩视频免费在线| 日产日韩在线亚洲欧美| 国产精品久久久久久av| 国产做受69高潮| 色综合导航网站| 欧美噜噜久久久xxx| 欧美日韩一区二区免费视频| 日韩最新免费不卡| 秋霞午夜一区二区| 久久久久久国产三级电影| 精品国产一区二区三区久久久| 亚洲免费av网址| 中文字幕九色91在线| 国产成人精品av在线| 日韩国产一区三区| 久久九九全国免费精品观看| 精品久久久一区二区| 富二代精品短视频| 国产精品日韩精品| 成人写真福利网| 色综合久久久久久中文网| 成人国产亚洲精品a区天堂华泰| 亚洲午夜未删减在线观看| 亚洲综合中文字幕68页| 久久影院中文字幕| 亚洲自拍高清视频网站| 国产精品美乳一区二区免费| 久久久女人电视剧免费播放下载| 国产精品久久中文| 91精品国产91久久久久久最新|