【问题标题】:how to get maximum volume level in delphi?如何在delphi中获得最大音量?
【发布时间】:2012-11-23 03:10:07
【问题描述】:

我尝试通过以下方式获取和设置 MediaPlayer 音量 http://delphi.about.com/od/adptips2006/qt/mediaplayer_vol.htm

但 1000 不是全音量。如何获得最大音量?

【问题讨论】:

  • 你应该添加你的 windows 版本...(我认为这应该适用于 XP)
  • 还有你的窗户???有 3 个音量级别(甚至四个):x1 作为播放器的内部(声音饱和度),x2 作为程序的音量(Vista+),x3 作为 WaveOut 通道的总音量(或者你的声卡驱动程序如何调用它)和 x4 作为电脑的主音量。为了最大化他们的产品,您必须最大化每个系数(尽管据报道它可能会损坏某些笔记本电脑上的硬件)。 VfW/MCI 也是 ancient API - 1993 !考虑使用其他音乐播放器,如 BASS 库或 DSPack
  • 顺便说一句 MSDN 声明 MCI_DGV_STATUS_VOLUME 返回左右扬声器的音量平均值 (msdn.microsoft.com/en-us/library/windows/desktop/…)

标签: delphi windows-7 media-player volume


【解决方案1】:

MCI 接口没有指定音量的最大值。

mciSendCommand API 函数需要给定参数的 因子。在 MCI 术语中,因子按 1000 进行缩放:

 500 = 0.5 // 50%, half the normal value
1000 = 1.0 // 100%, normal value
2000 = 2.0 // 200%, double the normal value

(该因素的实际含义取决于具体的 API 函数)

在您的情况下,1000 表示 100% 音量,所有较小的值都在设置衰减。当然,MCI 接口后面的实际音频驱动程序也可以接受放大,即值 > 1000。

使用 1000 作为最大值似乎是一个安全的选择。

如果您要创建某种多媒体应用程序,您应该认真考虑更新的界面或库。 (我个人对FMOD 和 Delphi 有很好的体验)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 2018-06-23
    相关资源
    最近更新 更多