更多次播放时错误waveOutOpen [delphi]

时间:2015-08-31 14:07:25

标签: delphi winapi delphi-7 delphi-xe

我从互联网上找到了代码,首先我播放波形文件并没有问题,然后我玩wav更多次并且在48次出现错误。我知道waveOutOpen函数的错误。

这是我的代码:

- (void)applicationDidEnterBackground:(UIApplication *)application
顺便说一句,CallBack功能不起作用,请任何人帮助我! 这是Full code. 抱歉我的英文。

1 个答案:

答案 0 :(得分:0)

期望能够同时播放无限多条消息是不合理的。可能每条消息都是MP3或MP4,因此虽然这些消息比编码更快,但它们不会无限快。然后必须将得到的波形样本加在一起,确保没有结果的数字溢出,这将导致最坏的严重失真或最好的削波。这都需要时间。还有内存考虑因素,但时间更可能是一个因素。因此,驱动程序可能会限制它可以在任何时间播放的声音数量,以便能够足够快地播放声音而不会失真。如果它没有,则可能存在溢出问题。

大多数音频传统上是24位立体声(48位),因此基于64位技术的驱动程序在合并后可能会出现溢出问题,最好的情况是大约40个样本。基于32位的驱动程序可能会更快地遇到问题。