安卓 SDK。音频管理器。 setStreamVolume 最大 int 值
Posted
技术标签:
【中文标题】安卓 SDK。音频管理器。 setStreamVolume 最大 int 值【英文标题】:Android SDK. audioManager. setStreamVolume max int value 【发布时间】: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?
谢谢,
附:我的大多数问题看起来都一样,因为我是新手,了解每个问题都需要一个新帖子,而且对于一个简单的程序我有很多问题。
【问题讨论】:
【参考方案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 个。
【讨论】:
以上是关于安卓 SDK。音频管理器。 setStreamVolume 最大 int 值的主要内容,如果未能解决你的问题,请参考以下文章