是否可以在汇编中构建音乐播放器(我正在考虑 NASM 的思路)?在构建一个过程中可能会遇到哪些障碍?
问问题
3508 次
4 回答
2
这是可能的——在装配中一切皆有可能。
主要问题是动机 - 组装不是最高效的环境,所以在开始之前你真的必须要在组装中构建一些东西。
于 2010-05-20T10:50:00.793 回答
1
是的。您可以只使用 OS API 和/或声音库,这有点毫无意义,所以我假设您想了解声音是如何被计算机硬件编码和实现的。
基本上,声卡需要一个值流(例如每秒 48000,它随音质而变化),这些值代表当时扬声器振膜的目标位置。
WAV 文件只是将这些数字存储在一个文件中。这会占用大量空间。
MP3、OGG 等对数据应用数学变换以减少所需的空间量,方法是:
- 降低人类听觉不太敏感的频率的精度
- 压缩重复的音频
要真正“实现”整个音乐播放,您需要解码音频文件,配置声音硬件并将数据流写入其中。可以做到 :)
于 2010-05-20T11:02:09.890 回答
1
很有可能。主要障碍是链接到所选的 api,尽管我不明白为什么它会过于困难。
于 2010-05-20T10:51:08.743 回答
0
这是可能的,但代码会因您想要支持的操作系统而异(例如,Windows 的代码将与 Linux 的代码完全不同)。
最简单的情况可能是一个在 Windows 下播放 MIDI 和/或 WAV 文件的程序(它已经非常直接地支持,所以你大多只是告诉它要播放什么文件,然后它从那里处理事情)。
在汇编中编写类似于您自己的 MP3 解码器之类的东西将更具挑战性——坦率地说,在您必须对汇编语言真正狂热才能认真考虑的范围内。
于 2010-05-20T11:12:36.713 回答