【发布时间】:2020-11-27 12:09:57
【问题描述】:
我有一个 424 mb 的 wav 文件,我想播放它,但它需要很长时间才能加载,而且它使用 425.6 mb 的内存。对于dos格式的程序来说,内存太大了。我只想加载歌曲的一部分,然后当它快到最后时,加载第二部分,当第二部分播放时,从内存中删除第一部分,等等。为此我应该使用 50 个部分。
这是代码行:
PlaySound("../music/main.wav", NULL, SND_FILENAME|SND_LOOP|SND_ASYNC);
我提到我需要在后台运行它,而其他命令则各司其职。
【问题讨论】:
-
您已经列出了设计为在 MS Windows 平台上运行的功能签名,但正在谈论 DOS。这些看似矛盾。您是在谈论实际的预 Windows DOS,还是来自 MS Windows 内部的命令提示符窗口? (PlaySound 在 DOS 下不可用)
-
@enhzflep 我怀疑 DOS 格式程序是指 Win32 控制台应用程序。这是使用 PlaySound 有意义的唯一上下文。
-
你不能那样做。如果您解释了什么是“dos 格式程序”,那么有人可能会帮助您找出其他方法。
-
@ComicSansMS - 我也是,原因与您提到的相同。我提出这个问题的部分理由是探讨这是一个 XY 问题的可能性。这些天来,运行 Windows 在任何有意义的意义上都没有出现 500 兆内存的问题。没有正当理由做一大堆记忆保存工作是一种耻辱。也就是说,维护几个缓冲区并简单地用几个备用填充一个缓冲区以吸收磁盘延迟并不是很困难。没有任何音频人工制品是很容易实现的。