【问题标题】:Android SDK. audioManager. setStreamVolume max int value安卓 SDK。音频管理器。 setStreamVolume 最大 int 值
【发布时间】:2012-03-03 18:30:54
【问题描述】:

我正在开发一个 Android 应用程序。

我已经能够使用以下方法成功设置扬声器音量:

AudioManager audioManager = (Audiomanager)getSystemService(Context.AUDIO_SERVICE);

audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, sb2value, 0);

问题是,“sb2value”的最大 int 值是多少?

仅供参考,“sb2value”是来自滑块的值。当用户滑动时,音量会发生变化。

我允许滑块值从 0 到 100。100 可以用作第二个参数值还是下限,例如 20?

谢谢,

附:我的大多数问题看起来都一样,因为我是新手,了解每个问题都需要一个新帖子,而且对于一个简单的程序我有很多问题。

【问题讨论】:

    标签: android android-2.2-froyo android-audiomanager


    【解决方案1】:

    要获得最大音量,您可以设置 sb2value:

    sb2value = audioManager.getStreamMaxVolume(audioManager.STREAM_MUSIC);
    

    【讨论】:

    • 这就是我所做的。我希望音量能够在 0 到 100 之间变化。我保留了 sb2value 变量。我创建了第二个变量并使用您的函数获取最大允许音量整数,将其除以 100(我想要的最大值),然后将其乘以 sb2value 所在的当前值。这使我几乎可以将任何手机的音量从最小更改为最大,并在两者之间增加。
    • 但是,我不记得 INT 是否可以保存十进制数。
    • 铸造,来自 C++... sb2value 已经是一个 int。我的意思是得到的答案可能会以小数结尾。如果 sb2value = 100, 10 (StreamMax) / 100 = 0.1。不过没关系。
    • int 不能保存十进制值,但您可以转换它。 (int)((sb2value/100) * sb2value)。这就是你要找的东西吗?
    【解决方案2】:

    您可以使用getStreamMaxVolume(int) 方法来获取您需要的值。希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      不要硬编码滑块的最大值(或者如果您正在使用,则为 SeekBar),将 Max 属性设置为 audioManager.getStreamMaxVolume(audioManager.STREAM_MUSIC) 这会更好,因为不同的设备可能有不同的音量限制。

      就实际限制而言,我想它不会超过 10 个。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-02
        • 2015-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-18
        相关资源
        最近更新 更多