安卓 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 值的主要内容,如果未能解决你的问题,请参考以下文章

有人有用音频录制安卓屏幕的代码吗?

错误:在 android sdk 中找不到 gradle 包装器。可能需要更新您的 android sdk

安卓手机上的音乐转换软件

安卓开发——定位管理

高清晰音频管理器,怎么突然调解不了音效了?

win10高清晰音频管理器没有音效选项