当前位置: 首页 > 知识库问答 >
问题:

使用我的音量设置播放声音

华锦
2023-03-14

我正在开发一个应用程序,根据特定的间隔播放一些声音。我让用户控制这些声音的音量。告诉现在它是好的,声音音量级别是作为用户选择之前。但这里的问题是,设备的音量水平也发生了变化。问题是:如何在不影响设备声级的情况下以我的音量水平播放我的声音?

defaultSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int streamMaxVolume = mAudioManager.getStreamMaxVolume(3);
vol = defaultSharedPreferences.getInt("vol_one", streamMaxVolume);
mAudioManager.setStreamVolume(3, vol, 0);
playsound();

更新:根据Biraj解决方案,要获得每个设备的最大允许卷,使用int streamMaxVolume而不是MAX_VOLUME变量。所以完整的答案是:

AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int streamMaxVolume = mAudioManager.getStreamMaxVolume(3);
vol = defaultSharedPreferences.getInt("vol_one", streamMaxVolume);
setVolume(vol);
*
*
*
public void setVolume(int soundVolume){
    final float volume = (float) (1 - (Math.log(streamMaxVolume- soundVolume) /    Math.log(streamMaxVolume)));
    mediaPlayer.setVolume(volume, volume);
}

共有1个答案

彭浩穰
2023-03-14

不要使用AudioManagersetvolume。使用MediaPlayer.setvoume()

private final static int MAX_VOLUME = 100;



public void setVolume(int soundVolume){
        final float volume = (float) (1 - (Math.log(MAX_VOLUME - soundVolume) / Math.log(MAX_VOLUME)));
        mediaPlayer.setVolume(volume, volume);
    }

说明:

setVolume (float leftVolume, float rightVolume)

设置此播放机上的音量。推荐此API用于平衡应用程序中音频流的输出。除非您正在编写一个控制用户设置的应用程序,否则该API应该优先使用setStreamVolume(int,int,int),后者设置特定类型的所有流的卷。请注意,传递的卷值是范围为0.0到1.0的原始标量。UI控件应按对数比例缩放。

 类似资料:
  • 问题内容: 在Python中播放声音文件(.wav)的最简单方法是什么?最简单的说,我指的是最独立的平台,并且需要最少的依赖。pygame当然是一个选择,但听起来似乎有些过分。 问题答案: Snack Sound Toolkit可以播放wav,au和mp3文件。

  • 问题内容: 我正在尝试播放声音,但无法正常工作。 编辑1: 仍然行不通。 编辑2 :此代码有效。我的设备处于静音模式。 问题答案: 对您的代码进行了修改: Swift 3和Swift 4.1:

  • 播放(播放音效/播放录音)

  • 问题内容: 我想用Swift播放声音。 我的代码在Swift 1.0中可用,但现在在Swift 2或更高版本中不再起作用。 问题答案: 最可取的是,您可能想使用 AVFoundation。它提供了使用视听媒体的所有必要条件。 更新: 某些评论中建议与 Swift 2 , Swift 3 和 Swift 4 兼容。 斯威夫特2.3 迅捷3 Swift 4(与iOS 13兼容) 确保更改乐曲的名称以及

  • 问题内容: 我正在尝试使用pygame播放声音文件(.wav),但是当我启动它时却听不到任何声音。 这是代码: 我也尝试使用频道,但结果是一样的 问题答案: 您的代码在我的机器上可以正常运行(Mac OSX 10.5,Python 2.6.4,pygame 1.9.1)。您正在使用哪些OS,Python和pygame版本?您是否可以通过其他方式(例如,在Mac的终端上或在Windows控制台上,然

  • 问题内容: 以下代码为什么不播放声音?它为play()返回“ true”,但我听不到任何声音。 如果我改用以下代码,则可以听到声音。 OS X优胜美地10.10.3 Xcode 6.2 问题答案: 问题是,您的AVAudioPlayer是一个 局部变量 。因此,它会立即不复存在-在开始播放之前,更不用说完成播放了。 解决方案:改为将其设置为 属性 ,以使其 持久存在 。