相关疑难解决方法(0)

Android应用程序中的音量控制

我想知道如何从音量键控制我的应用程序音量(与我的信念相反,我读过他们只控制铃声音量).我应该覆盖onKey Down/Up吗?

或者还有其他方法可以实现这一目标吗?我问,因为如果我覆盖活动的上面提到的函数,那么只有当与此活动相关联的视图具有焦点时,函数才会收到事件,并且我正在寻找"Globaly"的东西(不工作)无论现在正在运行什么活动)

android

40
推荐指数
2
解决办法
7万
查看次数

如何在我的Android应用程序中理智地管理音量?

我有一个应用程序在其活动打开时播放间歇性声音,并且用户总是期望它发出这些噪音,但不幸的是它受到音乐流量的限制.我发现的选项是这样的:

  1. 调整音乐流的音量,如果他们碰巧正在播放音乐,可能会使用户震耳欲聋.
  2. 如果音乐流的音量为0,则调用MediaPlayer.setVolume()无效.
  3. 处理音量按钮按下我自己,这有两个问题:音量按钮按下调整振铃器音量,除非我的音频正在播放,而我仍然无法使用我的OnKeyListener按下音量按钮按下onKey事件.如果有某种方法强制调整应用于音乐流,而我的活动有焦点,或者只是按下按钮按下自己,这将有效.
  4. 在后台播放静音循环音频,以将音乐流保持在音量调整的上下文中.

我认为第三个选项可能是最好的,因为它将卷控制权交给用户,但是如果有一些方法可以在单个媒体播放器实例中覆盖系统卷,那么它也会起作用.

android

33
推荐指数
1
解决办法
3万
查看次数

SoundPool中的流量与AudioManager中的音量

我感到很困惑...

SoundPool.play(int soundID,float leftVolume,float rightVolume,int priority,int loop,float rate)

这里的体积是0.0到1.0

我见过的教程建议将流量计算为:

AudioManager mgr = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);

int streamVolume = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);

streamVolume = streamVolume / AudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);

mSoundPool.play(mSoundPoolMap.get(index), streamVolume, streamVolume, 1, 0, 1f);
Run Code Online (Sandbox Code Playgroud)

这是有道理的.

我假设此卷将覆盖用户在手机中设置的全局媒体卷,我可以通过更改soundPool中的流量来独立更改我的应用的音量.

但实际上它就像乘数一样 - 如果我在soundpool中设置0.5音量,实际音量将总是全局音量的一半.很容易重现:

  1. 将手机设置中的全局媒体音量设置为最大值
  2. 使用soundpool.play将活动中的音量设置为0.5 - 播放声音
  3. 将soundpool.play中的音量设置为1 - 播放声音,它会大两倍

有人可以解释为什么它会这样吗?传递给SoundPool.play方法的音量真的是全球音量的乘数吗?

android soundpool android-audiomanager

18
推荐指数
1
解决办法
1万
查看次数

Android:MediaPlayer setVolume功能不起作用

我试图通过STREAM_SYSTEM上的媒体播放器播放声音

运用

mediaPlayer.setVolume(1.0f , 1.0f);
Run Code Online (Sandbox Code Playgroud)

要么

mediaPlayer.setVolume(0.90f , 0.90f);
Run Code Online (Sandbox Code Playgroud)

但它在设置中按照硬件音量控制播放.

基本上这条线没有效果.

我已经添加了

permissions "Modify..." as well in Manifest
Run Code Online (Sandbox Code Playgroud)

但我在stackoverflow中看到了这个API工作的链接.

我不想去API

AudioManager.setStreamVol()....
Run Code Online (Sandbox Code Playgroud)

因为它为所有应用设置了流量

这个setVol API无法正常工作的问题是什么?

任何人都可以提供工作样品的链接??

android android-mediaplayer

4
推荐指数
2
解决办法
9010
查看次数

Android Mediaplayer调整音量

任何人都知道如何通过点击手机侧面的音量按钮来增加/减少媒体播放器的声音音量?如果手机设置为静音模式,我该如何静音?

我正在使用的代码:

mp = MediaPlayer.create(this, R.raw.sound);
mp.start();
Run Code Online (Sandbox Code Playgroud)

android volume silent media-player

2
推荐指数
1
解决办法
1万
查看次数