C 混音同時錄製採集音效卡和麥克風話筒

2021-09-27 09:37:03 字數 1305 閱讀 5086

第一步:在引用了sharpcapture.dll之後,呼叫sharpcapture方法之前,一定要先通過下面**來設定授權資訊,如果是試用版,直接輸入test即可。

keymgr.setkey("test");
從之前的一篇博文中,我們介紹了一張圖看懂sharpcapture,從那篇文章我們可以看出,sharpcapture通過imixer進行混音,混音就是指將音效卡的聲音和麥克風的聲音錄製為一路聲音,方便後續處理。那麼如何獲取該介面的示例,從而使用該介面提供的各個方法呢?請看下面的**:

//麥克風採集,預設採集第乙個麥克風

microphone = capturefactory.getmicrophonecapture(0);

//音效卡資料採集

soundcard = capturefactory.getsoundcardcapture();

//建立混音器

mixer = capturefactory.getaudiomixter(microphone, soundcard, soundcardmixmode.doublechannel, true);

混音器需要您傳入音效卡採集器和麥克風採集器,同時設定混音的方式,比如這裡是左右聲道都參與混音,同時輸出時保留雙聲道.如果您不知道該如何設定,可以使用該設定即可.

獲取到了imixer的示例後,為其繫結事件mixedaudiodatacaptured。每當引擎採集到聲音資料並混音之後,就會將資料上交給該事件的響應函式上,您就可以進行下一步的處理,比如儲存為音訊檔案。

//註冊採集到聲音資料的事件,每當採集到聲音資料,就通過該事件上報

mixer.audiomixed += new sgdelegate(mixedaudiodatacaptured);

可以在獲取到聲音位元組流後進行後續處理。

/// /// 採集到聲音資料

///

/// 聲音資料

public void mixedaudiodatacaptured(byte audiodata)

else

}}

處理完上述步驟後,就可以開始採集了。如下:

//開始採集和混音

microphone.start();

soundcard.start();

您可以通過下面的**停止採集:

//停止採集和混音

microphone.stop();

soundcard.stop();

C 錄製音效卡聲音喇叭聲音音箱聲音

第一步 在引用了sharpcapture.dll之後,呼叫sharpcapture方法之前,一定要先通過下面 來設定授權資訊,如果是試用版,直接輸入test即可。keymgr.setkey test 從之前的一篇博文中,我們介紹了一張圖看懂sharpcapture,從那篇文章我們可以看出,sharp...

c 同時上傳檔案和引數

在實際工作中遇到httppost提交請求是經常的事情,但是上傳檔案和提交資料在一次請求中完成的情況卻不經常遇到,下面整理了這種情況的c 實現 希望能對你有所幫助。實現檔案和引數一起提交 內容型別 檔案引數物件 public class fileparameter 檔名稱,帶副檔名,例如 aaa.jp...

C 方法引數傳遞 同時使用ref和out關鍵字

在方法引數傳遞中,可以同時使用ref和out關鍵字,但是要注意ref和out引數傳遞的不同。using system class program 調整後的分數為,加平時表現分後 score,refscore,outscore console.readkey private void changesc...