【问题标题】:How can I keep a disc spinning in the DVD ROM drive?如何保持 DVD ROM 驱动器中的光盘旋转?
【发布时间】:2019-03-05 00:40:56
【问题描述】:

我只想在插入光盘后让 DVD 在 DVD ROM 驱动器中旋转。

我的唯一目的是在用户最终希望在以后的某个时间点播放 DVD 时减少光盘启动时间。

用户可以选择是否要防止光盘旋转。

那么,真正的问题是如何将 DVD ROM 驱动器的降速超时更改为从不

【问题讨论】:

  • 这听起来像是一个可怕的想法——尤其是。在笔记本电脑上。我认为我们都可以处理 2 秒来启动 DVD。
  • 请不要那样做。 DVD 驱动器可能非常嘈杂,如果您问我,为了可能加快播放速度而不得不听它可能会或可能不会发生,这将是一场灾难。
  • 与编程无关。
  • 关闭并重新打开此问题(以防止迁移)。我的理解是 OP 希望以编程方式实现他们的目标,所以这是一个有效的问题。我很确定它不属于超级用户,为什么有人想将它迁移到服务器故障是我无法理解的。
  • @Trainee4Life - 因为没有什么比旋转物理部件(例如 CD/DVD 播放器)更能缩短笔记本电脑的电池寿命了。至于时间,我觉得还可以。我会 much 宁愿等待 2,3,..5 秒让光盘旋转起来,也不愿让它不断旋转以防万一我可能以后想要。它会浪费电力,增加驱动器不必要的磨损。同样,我可以让我的车在我工作的时候在外面跑,这样当我出去的时候它就准备好了——但我不会这样做,因为它很浪费,很吵,等等。如果加速时间是问题,那就放进去在 USB Key 或 HD 上。

标签: c# .net windows


【解决方案1】:

也许你可以每隔一段时间继续阅读它。

但是如果用户想要弹出磁盘呢?
或者做一些其他需要在 DVD ROM 上“完全锁定”的操作?
连续读取磁盘会使某些操作更加困难,并且可能会增加挫败感。

当用户决定播放 DVD 时,她知道播放前的(很小的)初始延迟。我不认为通过减少这个时间你会获得什么好处。

DVD 是众所周知的技术,当有人使用它时,他们知道会发生什么。

如果有人对最初的开始时间不满意,还有其他技术可供他们使用。

【讨论】:

  • 如果用户想弹出磁盘,我会允许他们弹出。 “全锁”操作..我不介意..我会放弃读盘。从光盘读取是实现此功能的唯一选择吗?如果它已经在旋转,我不想读取它。如前所述,“在托盘中闲置时播放光盘和从旋转的光盘播放时的区别是巨大的”。那么为什么不为我们的最终用户提供这个功能呢?
  • 假设我们采取的解决方案是每隔一段时间从磁盘读取,那么你怎么知道用户什么时候想要弹出磁盘,或者全锁操作,你的程序怎么知道 /i> 用户想要做这样的事情?虽然这绝对可以通过编程方式(与操作系统密切相关),但我认为这不值得麻烦。就像 Brian Rasmussen 在 cmets 中所说的那样,DVD 也可能很吵。
  • 也就是说,这在很大程度上取决于您自己的决定(记住您的目的和目标受众)。我希望我们可以同意不同意,并等待给出实际答案的答案:如何做你想做的:-)
  • 这取决于许多因素,例如文件系统缓存:如果您要读取的位被缓存,则不需要磁盘。这似乎是一个很好的幼稚解决方案(也就是说,无需直接访问操作系统详细信息来执行您真正想要的操作:更改降速超时)。
  • @Roger - 所以问题真的归结为我如何才能将 DVDROM 驱动器旋转超时更改为从不。 (更新了我的问题)关于如何去做的任何想法?
【解决方案2】:

我想你可以每隔几秒钟从磁盘中寻找随机的文件位?

【讨论】:

  • 关于如何去做的任何聪明的想法?如果光盘在旋转或被其他应用程序使用,我不想“不必要地”读取光盘。
【解决方案3】:

除了保持驱动器旋转之外,您是否有机会缓冲几秒钟,以便在驱动器旋转时在内存中准备好数据?

【讨论】:

  • 在现有基础设施的情况下是不可能的。我不控制从“哪里”播放 dvd - 缓冲几秒钟意味着 dvd 开始播放 from 缓冲区最初直到驱动器旋转,然后它顺利读取 from i> 光盘。
  • @Trainee4Life:您总是可以在一个单独的线程中从 DVD 开始读取并使用它来填充缓冲区。也许更好的办法是创建自己的 Stream,它可以透明地处理其余代码的缓冲区,根据需要在内存和 DVD 之间切换。
【解决方案4】:

Microsoft Windows 在注册表中有一个“DVD Drive Spin Down Timeout”设置,您可以修改它:

https://msdn.microsoft.com/en-us/library/windows/desktop/dd388590%28v=vs.85%29.aspx

【讨论】:

  • 听起来很完美,但由于某种原因,据称它只能在笔记本电脑上使用,而且我在 Windows 7 台式电脑注册表中找不到它。
【解决方案5】:

可以在设备上设置的 SCSI 设备参数值称为“空闲条件计时器”和“待机条件计时器”。

如果您将这些设置为高于默认值,或者完全忽略,那么驱动器将继续旋转!

见“Power Condition mode page (1Ah)

可以做到这一点的一个命令行工具是 sdparm。

【讨论】:

【解决方案6】:

您可以读取磁盘,然后她将在您的驱动器中继续旋转。

【讨论】:

    【解决方案7】:

    以编程方式解决此问题取决于 OP 的操作系统。话虽如此,我相信可以肯定地说,在 MS 环境中,激活/停用设备(在驱动程序级别)的简单脚本可以完成此操作。在基于 Linux/Unix 的平台上,杀死/运行 CD-DVD ROM 守护进程的脚本同样就足够了。有几个因素将决定前端的外观 - 取决于 OP 未说明的要求,即美学、选择的编程语言等。这可以写成一个应用程序,也可以是一个简单的批处理文件,这一切都取决于如何优雅的OP需要的解决方案。虽然这是一种手动解决方案(您必须每次都单击它),但可以将 DVD ROM 自动运行功能链接到脚本。

    【讨论】:

      猜你喜欢
      • 2015-12-24
      • 2012-07-10
      • 2014-05-25
      • 2015-05-17
      • 1970-01-01
      • 2023-03-10
      • 2016-02-27
      • 2011-07-12
      • 2011-09-14
      相关资源
      最近更新 更多