标题:发一个 DOS 下利用 SoundBlaster 声卡播放 WAV 音频的程序吧
只看楼主
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
结帖率:95.65%
 问题点数:0 回复次数:16 
发一个 DOS 下利用 SoundBlaster 声卡播放 WAV 音频的程序吧

*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国 http://www.bc-cn.net
*/ 作者: RockCarry E-mail:rockcarry@163.com
*/ 时间: 2007-9-10 编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------

可能很多人都需要这个。
最近有空搞了下这个,其实很早以前就实现过 DOS 下的声卡程序,只是代码写得很烂,而且一直都有bug,所以没有发布。
现在重新看了下 SoundBlaster 的资料,还有就是 PC 的 DMAC 8237 和 PIC 8259,重新整理了下思路,把代码重写了,并且调试到现在,已经去除了很多bug,应该可以在 WinXP 平台下稳定的工作。
目前这个还是按照 SB2.01 来写的,因此只能支持 8bit 单声道的 wave 音频播放,采用的是 DMA + 中断的方式,可以播放任意长度的音频文件。WinXP 只能支持到 SB2.01 的标准,而且播放的时候对 CPU 的占用很大,这我也没有办法,这不是我的程序的问题,而是 XP 下 DOS BOX对 SoundBlaster 支持的不好。建议安装下 VMSound 这个软件,可以在 WinXP 平台上获得更高的 SoundBlaster 声卡支持,并且能减少 CPU 资源的占用。
以后可能会加入对更高版本的 SoundBlaster 声卡的支持。还有就是 MIDI,不过 MIDI 的实现还是比较麻烦的。
当然目前这个只是一个 demo 程序,在后面我会定义好接口,以函数库的形式发布,也会加入更多的新特性。

pNBQJnYk.rar (268.62 KB) 发一个 DOS 下利用 SoundBlaster 声卡播放 WAV 音频的程序吧




搜索更多相关主题的帖子: 声卡 WAV 音频 DOS SoundBlaster 
2007-09-11 00:16
wangxy200696
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2006-10-15
得分:0 
我以前也弄过声卡播放wav文件,如果不用中断技术是好弄的,但要播放背景音乐就难了,我反汇编过一个德国人(团体)写的一个多媒体软件,它是用保护模式写的,我到现在还在一直反汇编,想看看它到底是怎么播放背景音乐和显示高分辨率图片的,不过我纯dos反汇编到lidt就死机,v86下反汇编到一个int31h中断也死机了,到现在也没有弄好,一直郁闷中...
2007-09-11 01:44
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
得分:0 
wangxy200696 你解决问题的思路似乎不对。一般情况下,我都是不会考虑去反汇编别人的代码的。比较好的做法是,最大限度的占有相关的资料和代码,然后进行分析,搞懂原理,然后理清思路,从头实现。反汇编实在不可取,只能作为找不到资料和代码时的无奈选择。
2007-09-11 18:05
wangxy200696
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2006-10-15
得分:0 

你说的有道理,不过我确实没有资料,没办法,只有反汇编了,我很喜欢反汇编,喜欢玩单机游戏,想改造游戏和软件的功能

2007-09-11 19:51
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
得分:0 
SoundBlaster 的资料我有的,Creative 的完整原始版本。
2007-10-16 16:43
ba_wang_mao
Rank: 2
来 自:成都理工大学
等 级:论坛游民
帖 子:297
专家分:27
注 册:2006-11-7
得分:0 
在XP下我运行不了呀!

多年以来还在MSDOS、单片机下搞嵌入式编程,对WINDOWS编程一窍不通,很想了解WINDOWS下病毒编程技术。
2007-10-20 09:07
青格儿
Rank: 4
等 级:贵宾
威 望:11
帖 子:698
专家分:20
注 册:2007-7-31
得分:0 
XP下可以运行啊!
2007-11-24 11:43
夜礼服假面
Rank: 1
等 级:禁止访问
帖 子:92
专家分:0
注 册:2007-11-26
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2007-11-26 17:45
夜礼服假面
Rank: 1
等 级:禁止访问
帖 子:92
专家分:0
注 册:2007-11-26
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2007-11-27 13:37
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
得分:0 
This code is only written for Turbo C compiler, please use Turbo C to compile and run this demo.

[[italic] 本帖最后由 RockCarry 于 2007-11-27 14:22 编辑 [/italic]]
2007-11-27 14:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-169027-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.155295 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved