【问题标题】:Android MediaPlayer get volumeAndroid MediaPlayer 获取音量
【发布时间】:2013-11-27 01:25:34
【问题描述】:

我有兴趣检索 MediaPlayer 的当前音量,但没有看到任何类似“getVolume()”的方法。有一个 setVolume(),所以我有点困惑为什么他们不提供读取这个属性的方法。

我看到其他一些建议使用 AudioManager 读取音量的答案:

    int volumeLevel = am.getStreamVolume(AudioManager.STREAM_MUSIC);    
    int maxVolume = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);

    float volume = (float)volumeLevel/maxVolume;

但是,这似乎返回了所有音乐的设备音量,而不是我使用“setVolume()”设置的音量...有没有办法直接从 MediaPlayer 获取音量?我在想也许我需要用 getAudioSessionId() 做点什么。谢谢。

【问题讨论】:

  • 你看过这篇文章吗? stackoverflow.com/questions/4593552/…
  • 是的 getStreamVolume() 似乎总是返回相同的值,即使在我使用 MediaPlayer.setVolume() 手动设置音量后也是如此;
  • 您找到解决方案了吗? AFAIK,您必须将当前音量级别存储在您自己的变量中。

标签: android media-player


【解决方案1】:

据我所知,默认 MediaPlayer 无法做到这一点。您需要扩展它并添加自己的 getVolume() 方法以及跟踪当前音量的变量。

【讨论】:

  • 我们如何跟踪当前音量?我尝试在扩展MediaPlayer 的类中覆盖setVolume,但从未调用过此方法。
  • 我认为没有getVolume()方法
猜你喜欢
  • 2012-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-24
  • 1970-01-01
相关资源
最近更新 更多