android - 为什么 AudioManager.isStreamMuted 不可用?

标签 android android-audiomanager

我正在使用 android AudioManager 来静音和取消静音流,例如 STREAM_SYSTEM 和 STREAM_NOTIFICATION,静音直接调用 setStreamMute但我找不到 isStreamMuted 方法。

查看源代码我可以看到 it exists所以问题是“如何检查流是否静音?”

我正在使用 Android 4.0.4

最佳答案

反射(reflection)是你的 friend 。这对我有用。

try {
    Method m = AudioManager.class.getMethod("isStreamMute", int.class);
    isMuted = (Boolean) m.invoke(am, AudioManager.STREAM_MUSIC);
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
    System.out.println(e);
}

更新:方法 public boolean isStreamMute (int streamType) 现在可以在 API 23 中访问,无需使用反射。

关于android - 为什么 AudioManager.isStreamMuted 不可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13789321/

相关文章:

android - RecyclerView 和普通 LinearLayout 内部布局的不同宽度

java - 在 Kotlin 中改造单例

android - 如何使用 SoundPool 同步声音

android - 接收短信时更改铃声配置文件

android - 如何从 Android 应用程序将铃声音量从低调到高

java - Android NDK 回调到 Java Activity

android - 新的 admob Express Native 广告因 IllegalStateException 而失败

java - 在 Java 中将 long 分配给 Long

java - Android AudioManager 事件监听器?

java - Android 设备上的音频文件路径