本文目錄一覽:
- 1、如何針對聲卡編程發出特定頻率的聲音
- 2、在visual c++中用C語言編程時要打開計算機的揚聲器用什麼函數
- 3、如何用C語言(或C++)關閉聲卡驅動和打開聲卡驅動,求代碼
- 4、如何用C語言播放音樂
如何針對聲卡編程發出特定頻率的聲音
蜂鳴器編程的話,有個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
在visual c++中用C語言編程時要打開計算機的揚聲器用什麼函數
C本身沒有讓聲卡發聲的函數,這個需要平台,比如Windows下的directsound。 你要做的是利用C語言調用這些api。
如何用C語言(或C++)關閉聲卡驅動和打開聲卡驅動,求代碼
你是說控制聲卡聲音嗎?
直接用c很麻煩,不過有個變通的方法。
搜索nircmd,下載,這個命令有很多功能,可以使用這個:
增大系統音量2000個單位值 (最大65535) nircmd.exe changesysvolume 2000
降低系統音量5000個單位值 (out of 65535) nircmd.exe changesysvolume -5000
設置系統音量為最大 nircmd.exe setsysvolume 65535
系統音量靜音 nircmd.exe mutesysvolume 1
取消系統靜音 nircmd.exe mutesysvolume 0
改變當前系統靜音設置(靜音和非靜音之間切換) nircmd.exe mutesysvolume 2
main()
{
system(“nircmd.exe mutesysvolume 1”);
}
這樣就可以是上卡靜音了。
如何用C語言播放音樂
首先要解壓縮音頻文件,這些文件的格式一般都是標準化的可以在網上面找到解壓方法.
然後把解壓得到的音頻數據輸出到聲卡,這裡需要硬件I/O操作的知識.把數據送到特定的I/O端口,然後聲卡才能發聲.
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/247913.html