Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中使用winmm.dll预加载音频文件#_C#_Audio_Preload_Winmm_Mcisendstring - Fatal编程技术网

C# 在C中使用winmm.dll预加载音频文件#

C# 在C中使用winmm.dll预加载音频文件#,c#,audio,preload,winmm,mcisendstring,C#,Audio,Preload,Winmm,Mcisendstring,我正在用C#和winmm.dll编写一个wave音频播放器。为了减少从一个文件切换到下一个文件时的延迟,我使用不同的别名打开了下一个文件。切换到下一个文件时,我停止第一个别名,然后播放第二个别名。 一切都很好,直到用户等待一段时间(即20分钟),然后再播放下一个(预加载的)文件。在这种情况下,播放器在播放新文件之前有5秒的延迟,该文件已经预加载了一段时间 问题是,winmm.dll是否将未使用的文件置于“待机”模式?我们是否需要在特定时间段激活它以减少延迟?如果是,怎么做 我发现了一个名为“已停

我正在用C#和winmm.dll编写一个wave音频播放器。为了减少从一个文件切换到下一个文件时的延迟,我使用不同的别名打开了下一个文件。切换到下一个文件时,我停止第一个别名,然后播放第二个别名。 一切都很好,直到用户等待一段时间(即20分钟),然后再播放下一个(预加载的)文件。在这种情况下,播放器在播放新文件之前有5秒的延迟,该文件已经预加载了一段时间

问题是,winmm.dll是否将未使用的文件置于“待机”模式?我们是否需要在特定时间段激活它以减少延迟?如果是,怎么做

我发现了一个名为“已停放”的状态,但它从未返回,而且我在网上找不到任何描述它的内容

如果有人能帮忙的话,这将是一个很大的帮助,因为没有太多关于这个DLL的文档


提前谢谢

这是操作系统工作方式的必然结果。如果您暂时不使用代码或数据,那么它将从RAM中交换出来并存储在分页文件中。为正在运行的任何其他程序腾出空间。如果您没有足够的RAM,或者硬盘速度慢,或者分页文件碎片严重,那么将其重新交换可能需要一段时间。请访问superuser.com,了解如何使您的机器工作得更好。嗯。。。即使您没有预加载文件,5秒也是很长的时间。您的Windows电源设置是否可能正在关闭硬盘?在我的系统上,默认设置是在20分钟后关闭硬盘。您可以在控制面板、电源选项、更改计划设置、更改高级电源设置、硬盘、关闭硬盘后…@HansPassant我检查了您的解决方案,认为这不是真的,因为该系统有4GB RAM,仅用于此项工作(用于无线导体播放器).@jaket此系统的硬盘从未关闭过电源,始终处于打开状态。