当前位置:首页 » 编程软件 » 声卡编程

声卡编程

发布时间: 2023-01-03 04:40:33

❶ 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的信号槽机制实现音视频线程时间戳的传递,此处不再赘述。

❼ 声卡的主要功能是什么

【主回答】

  1. 将话筒输入的声音进行数字化处理,采样频率,转换精度可由程序选择。

  2. 将处理后的数字波形声音还原为模拟信号声音,经功率放大后输出。

  3. 可外接MIDI键盘,将弹奏的乐曲以MIDI形式输入计算机内。

  4. 将计算机处理后的MIDI乐曲经合成器,合成为音乐声音后输出。

  5. 连接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
-------------------------------------
绝对可以使用。

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:593
制作脚本网站 发布:2025-10-20 08:17:34 浏览:888
python中的init方法 发布:2025-10-20 08:17:33 浏览:581
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:765
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:684
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1013
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:255
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:114
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:806
python股票数据获取 发布:2025-10-20 07:39:44 浏览:713