TASM 8086 汇编器声音文件

问题描述

我被要求为学校作业制作一个项目,我正在制作虚拟钢琴。我已经完成了所有的图形和动画,但现在我需要实际播放声音。有没有办法使用 TASM 在 8086 汇编器中播放 wav/mp3 声音文件? (任何其他声音文件也可以)。提前致谢!

解决方法

DOS 的学校钢琴项目通常只使用主板扬声器播放单音调。你真的需要写一个声音播放器吗?

我在 28 年前使用 TASM 16 位程序设法在 MS-DOS 中播放声音文件,尽管它相当复杂。声音样本(从 WAV 文件中提取或从 MP3 文件中解码)被存储到两个保留的内存缓冲区之一。 直接内存访问通道用于以预编程的比特率为 SoundBlaster 的输入端口供电。当 DMA 几乎用完缓冲区时,它触发了一个中断,通知主程序另一个内存缓冲区需要加载下一部分声音样本,并且 DMA 输入重定向到另一个缓冲区,因此两个缓冲区无缝交替.

或者,如果您的项目是适用于 Windows 的 32 位 Portable Executable 应用程序,您只需导入 WinAPI 函数 PlaySound 并为其提供声音文件名。