音效卡編程
❶ alsa音效卡編程怎麼改變聲音大小
首先,如果機器有多於一個音效卡,可以...最後,alsa設置了一個defaults設備,音頻播放軟體默認使用defaults設備
❷ 請問匯編語言對音效卡和顯卡如何編程
可以使用BIOS int 10H功能調用,不過只是能使用1024*768,RGB24位顏色模式,不能對顯卡控制,更不能使用顯卡的其他功能。
http://www.aogosoft.com/bbs/mixpage.asp?mode=viewoktext&fileid=133
樓主要是找到顯卡音效卡的資料請給我一份。[email protected]
❸ oppo音效卡內置音效卡代碼
代碼#36446337。
設置方法:
(1)在電話撥號界面輸入代碼*#36446337。再按一下#。

(3)音效卡編程擴展閱讀:
注意事項:
(1)音效卡(又稱音效卡):音效卡是多媒體技術中最基本的組成部分,是實現聲音/數字信號相互轉換的一種硬體。在
(2)音效卡的基本功能是將原始聲音信號從麥克風,磁帶,CD,並輸出到耳機,音箱,功放,錄音機及其他音響設備,或通過音樂設備數字介面(MIDI)樂器產生美麗的聲音。
(3)音效卡從麥克風獲取聲音模擬信號,通過存儲在計算機中的模數轉換器(ADC)將聲波幅值信號轉換為一系列數字信號。
當重放時,這些數字信號被發送到數字到模擬轉換器(DAC),DAC以相同的采樣率被還原為模擬波形,並被放大到揚聲器中進行聲音處理,這一技術被稱為脈沖編碼調制(PCM)。
(4)音效卡是將麥克風的數據或線性輸入的聲音信號經過模擬/數字轉換編程的數字音頻信號,再經過音量/模擬轉換成模擬信號,送入混頻器放大,最後輸出驅動揚聲器的聲音。
❹ 如何用vc編程分別選擇音效卡的不同聲道進行錄音
我想你應該可以用waveInOpen這個來實現,我對這個沒有什麼研究,但是你首先要知道你這個兩個通道的設備id是什麼才能可以用這個函數來分別錄進不同的聲音。
我最多也只能幫到這了,其他的你要自己找資料了。
原型是:
MMRESULT waveInOpen(
LPHWAVEIN phwi,
UINT_PTR uDeviceID,
LPWAVEFORMATEX pwfx,
DWORD_PTR dwCallback,
DWORD_PTR dwCallbackInstance,
DWORD fdwOpen
);
❺ delphi編程 實現選擇控制多個音效卡的切換
以前編寫過一些基於Direct Sound的程序,不知道你是否也用同樣或類似的介面,我覺得對多設備可用時的選擇問題的處理策略也許都是類似的。
我在一開始使用 Direct Sound 介面時就注意到了多設備問題,它的API提供了獲取設備信息的調用函數,在使用時要自己指定設備,或者使用系統默認設備,你在做完了大部分程序才發現這問題的話,那麼估計你一直在選擇使用系統默認設備,只是你可能沒意識到,請仔細查看你的API的幫助文檔和參數。
解決多設備切換,你的程序是不能自動選擇什麼是最合適的設備的——這是根本不可能的,無論音頻還是視頻設備都一樣,你沒辦法通過從API獲得的信息確定哪個更適用。你能做的,是讓用戶界面選擇,然後你保存配置(下次運行還默認用它)。最簡單的實現方式,大概是設置界面上弄個ComboBox下拉框,你用API把所有音頻設備及描述信息弄到,然後把描述信息填到ComboBox中去,用戶選擇哪個,你就用哪個。
不是多音效卡才有這問題,對視頻和音頻設備,單個的物理設備可能產生多個邏輯設備(它們往往是不同軟體層次上的硬體訪問介面),對你的程序而言,你也不易(也不需要)分辨什麼是物理的和邏輯的設備,把API獲得的設備全盤推給用戶就成。
❻ 監控16個畫面怎麼把聲音同時播放
這個跟設備本身有關系,一、音視頻同步問題概述: 音視頻同步問題是可視對講中的重點需要解決的問題之一,也是一直以來被模擬門禁產品廠商攻擊的一個弱點,因為模擬可視對講產品都採用專線傳輸,不存在這個問題。解決同步問題的方法有很多種,其中時間戳是最成熟最完美也是最復雜的解決辦法,可以解決任何多媒體領域的音視頻同步問題;其原理是選擇一個參考時間,在生成數據流時依據參考時間上的時間給每個數據塊都打上時間戳;在播放時,讀取數據塊上的時間戳,同時參考當前時鍾上的時間來安排播放,讓快於這個參考時間的包等待,丟棄慢於這個參考時間的包。 在基於時間戳的同步機制中,僅僅對不同步的數據進行處理是不完備的,還需要反饋機制,如基於Windows平台的DirectShow就提供這樣一個反饋機制,它的質量控制(Quality Control)可以將播放的狀態反饋給源,讓源端加快或者放慢數據流的速度。
在多媒體文件採集,播放及對同步的要求都非常嚴格,如果從多媒體文件中分離出音視頻數據的數據不同步,音視頻的時間差則會越來越大,這是無法忍受的,所以在多媒體文件中,不但要求有同步機制,還要求有反饋機制。
二、數字可視對講中的音視頻同步方案
在數字可視對講中,可以考慮的音視頻同步方案有兩種:一是發送端解決;二是接收端解決。
發送端解決方法比較簡單,具體措施是在發送端先將一段時間內採集到音視頻數據打包。比如採集到一幀視頻圖像,將這幀圖像與採集這幀視頻的時間內採集到的視頻數據打成一個包,接收端接收到這個包之後解包分別播放就可以了。發送端解決的控制方法比較簡單,但是在高清要求清晰度比較高的情況下就不是很理想,清晰度高,意味著每個音視頻包數據量就大,能保證同步,卻難以保證連續。我們在同一個線程中按照先後順序發送PCM音頻和H.264視頻,測試結果表明這種方法確實存在連續問題。
接收端解決方案繞不開的問題是時間戳,接收端根據接收到的音視頻數據的時間戳安排播放。時間戳需要一個參考時間,而採集過程中視頻的時間是不定的,數字攝像頭採集圖像的幀率是一個平均值,不宜用來做參考時間,所以只能用音頻時間作為參考時間。
三、音效卡編程和音效卡驅動的時間機制
門禁可視對講中音頻是雙向的。本文的門禁可視對講方案中,音頻的採用PCM(Pulse Code Molation——脈碼調制錄音)採集,在網路中傳送的也是原始數據,之所以沒有對音頻數據進行編碼處理是基於以下原因:一是S3C6410沒有提供對音頻的硬編解碼,如果使用軟體實現編解碼,在有限的系統資源條件下難以實現;二是音頻數據量較小:採用8000采樣率和量化位數為8位的電話語音標准,一秒的音頻數據是8K位元組,只相當於視頻1幀數據的兩倍,這對普遍擁有百兆網卡的區域網來說,數據量很小。實驗的結果表明,這種簡單的處理方式被證明是有效的。
Linux操作系統下音頻介面有/dev/dsp,/dev/audio,/dev/Mixer三種。前兩種的屬性基本相同,DSP是數字信號處理器(Digital Signal Processor)的簡稱,是用於數字采樣(sampling)和數字錄音(recording)的設備文件,它對於Linux下的音頻編程來講非常重要。向該設備寫數據即意味著激活音效卡上的D/A轉換器進行放音,而向該設備讀數據則意味著激活音效卡上的A/D轉換器進行錄音。目前許多音效卡都提供有多個數字采樣設備。/dev/audio屬性與dsp類似,但更多的用於sun的工作站中,為兼容性考慮,應用中一般使用/dev/dsp作為音頻介面。mixer為混音器,也是音效卡設備中相當重要的一部分,它的作用是將多個信號組合或者疊加到一起,但對應用程序來說,這些都無需考慮,但可以通過這個介面調節音效卡播放時聲音的大小等參數。
無論是Linux下還是Windows下,音效卡的編程介面都是由音效卡驅動提供的,而驅動都是會考慮到時間機制的,其表現形式就是當音效卡驅動沒有裝好時,使用播放器播放多媒體文件時聲音以極快的速度過去了,但是音效卡驅動裝好之後就很正常了,本文的音視頻同步解決方案即以此為基礎。
四、基於音頻時間機制的音視頻同步解決方案
與文件形式的多媒體不同的是,可視對講中音視頻流的源端是永遠同步的。所以一種簡單的解決方案是發送端啟用獨立的音頻和視頻線程,進行音視頻採集,採集後只管往外發送數據,接收端接到數據就分別解碼播放,從表面看,這種採用無同步機制多線程解決方案是可行的,但是忽略了一個問題,即音頻數據包和視頻數據包的大小。包的大小會影響網路傳輸的速度。這種差別在網路條件好的情況下顯示不出來,一旦遇到網路擁塞或者其他情況就會變得很明顯。
根據對音頻採集和處理的敘述,我們知道,音頻的採集是有時間機制的。比如采樣率是8000,采樣位數是8,我們就可以算出采8K位元組的數據所用的時間是1s,這樣音頻就可以按照自己的速度播放;而攝像頭每秒採集的幀數是相對固定的,如OV9650採集速度為平均每秒30幀,這樣即可以算出1/30秒(約為0.03333,具體精度可以根據要求決定)刷新一幀圖片,這種方式中只要保證源端音頻視頻的採集是同步的就可以,而門禁對講過程中,這種同步是原生的。
發送端分別用線程採集音視頻數據,採集的同時根據RTP協議的規定分別將這些數據打上時間戳,然後通過RTP底層協議(如UDP)發送出去。
接收端接收到音頻數據,直接交給音效卡播放,當前播放的音頻包的時間戳時間傳送給視頻線程;接收到視頻幀,則將其時間戳時間與當前播放的音頻時間戳進行比較,若未達到參考時間,則解碼播放;若達到參考時間,則說明該視頻幀滯後,丟棄該視頻幀,接收下一個視頻幀,循環往復,直到線程接收到結束命令停止;以上述音頻采樣率和采樣位數為例,視頻參考時間的計算方法為(以C語言格式的?號表達式表示):
音頻時間戳時間 +1/30> 視頻時間戳時間+丟棄:播放;
在編程實現時,採集端和播放端的音頻和視頻可採用獨立的線程,並利用Qt的信號槽機制實現音視頻線程時間戳的傳遞,此處不再贅述。
❼ 音效卡的主要功能是什麼
【主回答】
將話筒輸入的聲音進行數字化處理,采樣頻率,轉換精度可由程序選擇。
將處理後的數字波形聲音還原為模擬信號聲音,經功率放大後輸出。
可外接MIDI鍵盤,將彈奏的樂曲以MIDI形式輸入計算機內。
將計算機處理後的MIDI樂曲經合成器,合成為音樂聲音後輸出。
連接CD-ROM,直接播放出激光唱片的聲音。
【(7)音效卡編程擴展閱讀】

一、工作原理
音效卡從話筒中獲取聲音模擬信號,通過模數轉換器(ADC),將聲波振幅信號采樣轉換成一串數字信號,存儲到計算機中。重放時,這些數字信號送到數模轉換器(DAC),以同樣的采樣速度還原為模擬波形,放大後送到揚聲器發聲,這一技術稱為脈沖編碼調制技術(PCM)。
二、組成
音效卡是將話筒或線性輸入的聲音信號經過模/數轉換編程數字音頻信號進行數據處理,然後再經過數/模轉換變成模擬信號,送往混音器中放大,最後輸出驅動揚聲器發聲。下面對音效卡的各個組成部分做一個介紹。
1、數字信號處理晶元
數字信號處理晶元可以完成各種信號的記錄和播放任務,還可以完成許多處理工作,如音頻壓縮與解壓縮運算、改變采樣頻率、解釋MIDI指令或符號以及控制和協調直接存儲器訪問(DMA)工作。
2、A/D和D/A轉換器
聲音原本以模擬波形的形式出現,必須轉換成數字形式才能在計算機中使用。為實現這種轉換,聲音卡含有把模擬信號轉成數字信號的A/D轉換器,使數據可存入磁碟中。
為了把聲音輸出信號送給喇叭或其他設備播出,音效卡必須使用D/A轉換器,把計算機中以數字形式表示的聲音轉變成模擬信號播出。
3、匯流排介面晶元
匯流排介面晶元在音效卡與系統匯流排之間傳輸命令與數據。
4、音樂合成器
音樂合成器負責將數字音頻波形數據或MIDI消息合成為聲音/
5、混音器
混音器可以將不同途徑,如話筒或線路輸入、CD輸入的聲音信號進行混合。此外,混音器還為用戶提供軟體控制音量的功能。
❽ 如何針對音效卡編程發出特定頻率的聲音
蜂鳴器編程的話,有個API函數,VB中的聲明為
Declare Function Beep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
調用方法是Beep 聲音頻率,持續時間(毫秒為單位)
比如 beep 2000,1000
如果是音效卡編程的話,也有相應的API函數,比如你可以用DirectSound(也就是DirectX的一部分),功能比較強大,也很專業。事實上,如果你使用的是專業級的音效卡和音響設備,它可以在一定范圍內回放出超出人耳聽覺范圍的聲音。當然也可以用簡單一點的API,以下是幾個需要的函數:
Private Declare Function midiOutGetDevCaps Lib "winmm.dll" Alias "midiOutGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As MIDIOUTCAPS, ByVal uSize As Long) As Long
Private Declare Function midiOutGetNumDevs Lib "winmm" () As Integer
Private Declare Function MIDIOutOpen Lib "winmm.dll" Alias "midiOutOpen" (lphMidiOut As Long, ByVal uDeviceID As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long
Private Declare Function midiOutClose Lib "winmm.dll" (ByVal hMidiOut As Long) As Long
Private Declare Function midiOutShortMsg Lib "winmm.dll" (ByVal hMidiOut As Long, ByVal dwMsg As Long) As Long
Private Declare Function midiOutGetErrorText Lib "winmm.dll" Alias "midiOutGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long
Private Const MAXERRORLENGTH = 128 ' max error text length (including NULL)
Private Const MIDIMAPPER = (-1)
Private Const MIDI_MAPPER = (-1)
'MIDIOUTCAPS結構描述了Musical Instrument Digital Interface(MIDI)輸入設備的性能
Type MIDIOUTCAPS
wMid As Integer
wPid As Integer ' 產品 ID
vDriverVersion As Long ' 設備版本
szPname As String * 32 ' 設備 name
wTechnology As Integer ' 設備類型
wVoices As Integer
wNotes As Integer
wChannelMask As Integer
dwSupport As Long
End Type
Public Sub note_on(ch As Integer, ByVal kk As Integer, v As Integer)
' 發音主函數。參數分別為通道編號,音調,速度
Call midi_outshort(&H90 + ch, kk, v)
End Sub
Sub midi_outshort(b1 As Integer, b2 As Integer, b3 As Integer)
Dim midi_error As Integer
midi_error = midiOutShortMsg(hMidi, b3 * &H10000 + b2 * &H100 + b1)
If Not midi_error = 0 Then
Call midi_outerr(midi_error)
End If
End Sub
Sub midi_outerr(ByVal midi_error As Integer)
Dim s As String
Dim x As Integer
s = Space(MAXERRORLENGTH)
x = midiOutGetErrorText(midi_error, s, MAXERRORLENGTH)
MsgBox s
End Sub
❾ 音效卡如何調音
音效卡如何調音
音效卡 (Sound Card)也叫音頻卡 (港台稱之為聲效卡)。音效卡是多媒體技術中最基本的組成部分,是實現聲波/數字信號相互轉換的一種硬體。下面是關於音效卡調音的教學視頻,望對大家有所幫助。
聲音控制晶元
聲音控制晶元是把從輸入設備中獲取聲音模擬信號,通過模數轉換器,將聲波信號轉換成一串數字信號,采樣存儲到電腦中。重放時,這些數字信號送到一個數模轉換器還原為模擬波形,放大後送到揚聲器發聲。
數字信號處理器
DSP晶元通過編程實現各種功能。它可以處理有關聲音的命令、執行壓縮和解壓縮程序、增加特殊聲效和傳真MODEM等。大大減輕了CPU的負擔,加速了多媒體軟體的執行。但是,低檔音效卡一般沒有安裝DSP,高檔音效卡才配有DSP晶元。
FM合成晶元
低檔音效卡一般採用FM合成聲音,以降低成本。FM合成晶元的作用就是用來產生合成聲音。
波形合成表
在波表ROM中存放有實際樂音的聲音樣本,供播放MIDI使用。一般的中高檔音效卡都採用波表方式,可以獲得十分逼真的使用效果。
波表合成器晶元
該晶元的功能是按照MIDI命令,讀取波表ROM中的樣本聲音合成並轉換成實際的樂音。低檔音效卡沒有這個晶元。
跳線
跳線是用來設置音效卡的硬體設備,包括CD-ROM的I/O地址、音效卡的I/O地址的設置。音效卡上游戲埠的設置(開或關)、音效卡的IRQ(中斷請求號)和DMA通道的設置,不能與系統上其他設備的.設置相沖突,否則,音效卡無法工作甚至使整個計算機死機。
音效卡
1)I/O口地址
PC機所連接的外設都擁有一個輸入/輸出地址,即I/O地址。每個設備必須使用唯一的I/O地址,音效卡在出廠時通常設有預設的I/O地址,其地址范圍為220H~260H。
2)IRQ(中斷請求)號
每個外部設備都有唯一的一個中斷號。音效卡Sound Blaster預設IRQ號為7,而Sound Blaster PRO的預設IRQ號為5。
3)DMA通道
音效卡錄制或播放數字音頻時,將使用DMA通道,在其本身與RAM之間傳送音頻數據,而無需CPU干預,以提高數據傳輸率和CPU的利用率。16位音效卡有兩個DMA通道,一個用於8位音頻數據傳輸,另一個則用於16位音頻數據傳輸。
4)游戲桿埠
音效卡上有一個游戲桿連接器。若一個游戲桿已經連在機器上,則應使音效卡上的游戲桿跳接器處於未選用狀態。否則,2個游戲桿互相沖突。
;
❿ 如何用VC++或者VB編程式控制制音效卡發出想要頻率的聲音
誰說沒人說話啊?
設單擊Command1時發出頻率為500㎐,持續時間為1秒的聲音。代碼如下。
------------------------------------
Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Private Sub Command1_Click()
Beep 500, 1000 '500表示頻率,單位為㎐;1000表示持續時間,單位為㎳。
End Sub
-------------------------------------
絕對可以使用。
