关于 java:Android:如何以编程方式设置 MediaPlayer 音量? | 珊瑚贝

Android : How to set MediaPlayer volume programmatically?


如何以编程方式设置媒体播放器音量。我将它用于警报通知。任何帮助都非常感谢,并提前感谢。


使用 AudioManager,您可以简单地控制媒体播放器的音量。

1
2
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 20, 0);

也来自 MediaPlayer(但我没有尝试过)

1
setVolume(float leftVolume, float rightVolume)

Since: API Level 1

Sets the volume on this player. This API is recommended for balancing
the output of audio streams within an application. Unless you are
writing an application to control user settings, this API should be
used in preference to setStreamVolume(int, int, int) which sets the
volume of ALL streams of a particular type. Note that the passed
volume values are raw scalars. UI controls should be scaled
logarithmically.

Parameters

leftVolume left volume scalar

rightVolume right volume scalar

  • 设置值的最小音量是多少?
  • 如果为 0,则不需要音量。如果为 1,则在设备上以最大音量响铃。
  • 20号是多少?我以为你说音量是从0到1?
  • 20 是最大音量数(0 是最小值)。但我发现这可能因设备而异。您可以使用 audioManager.getStreamMaxVolume(streamType) 获得最大音量,如果您想以更可控的方式调整它,可以做一些漂亮的数学运算;-)
  • 我个人更喜欢 setVolume,因为它提供了更细粒度的控制,并且不依赖于输出设备(例如,蓝牙耳机的音量步长可能更小)
  • 请注意,setVolumes 值范围(0.0-1.0)是相对于当前媒体音量的。因此,如果媒体音量为 0,那么无论值是多少,都不会发出声音 :)


希望有帮助

1
    audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

用于提高音量

1
2
 audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                        AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);

用于降低音量

1
2
audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                        AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
  • 嗨 dwivedi ji,我们可以通过设备的音量按钮调整通知声音吗?
  • 有没有办法提高实际 MediaPlayer 文件的音量,而不是电话音量?我得到一个播放非常低的 MediaPlayer,即使电话音量正常。


MediaPlayer 类中确实有 setVolume 方法。看这里


隐藏音量控制 UI:

1
audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

提高音量

1
2
audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                    AudioManager.ADJUST_RAISE, 0);

用于降低音量

1
2
audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                    AudioManager.ADJUST_LOWER, 0);

您可以使用 Kotlin 执行以下操作,此代码将检查媒体音量是否超过设备最大音量的 20%,并将其减少到仅 20%。

1
2
3
4
5
6
7
8
9
10
11
    val audio = this.getSystemService(Context.AUDIO_SERVICE) as AudioManager
    val level = audio.getStreamVolume(AudioManager.STREAM_MUSIC)

    val maxVolume = audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC)
    val percent = 0.2f
    val twintyVolume = (maxVolume * percent).toInt()

    if ( level > twintyVolume) {
        Toast.makeText(this,“audio level is $level”, Toast.LENGTH_LONG).show()
        audio.setStreamVolume(AudioManager.STREAM_MUSIC,twintyVolume,0)
    }


  • twintyVolume 不错)


在此处阅读此页面。它解释得很好。
基本上,除非您的应用是替代闹钟,否则您需要在”onCreate()”函数中进行以下调用:

1
setVolumeControlStream(AudioManager.STREAM_MUSIC);

通过这种方式,您可以使用硬件按钮创建应用的音量。


代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
AudioManager mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
try
 {        
   float count = 100 * 0.2f;
   Log.d(“–count_float”, count +“”);
   Log.d(“–count_final”, Math.round(count) +“”);
   Log.d(“–count_volume”, new
   PreferenceMotionSensor(mContext).getStreamVolume());
   mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, Math.round(count), 0);
 }
catch (Exception e)
 {
  Log.d(“–Error”, e.getMessage());
 }

输出

1
2
3
D/–count_float: 20.0
D/–count_final: 20
D/–count_volume: 100

以下代码将音量设置为最大级别 (getStreamMaxVolume())。

1
2
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_MUSIC,am.getStreamMaxVolume(AudioManager.STREAM_MUSIC),0);

试试这个

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
protected static void setVolume(int volume) {
        currentVolume = volume;
        {
            if (volume == 1) {
                volume = 2;
            }
            try {
                float vol = ((float) volume / CONSTANT.SYSTEM_MAX_VOLUME);
                mediaPlayer.setVolume(vol, vol);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    }


记得设置左右扬声器音量。

1
2
3
if (System.nanoTime() == alarm){
    yourMediaPlayer.setVolume(volume, volume)}
}

来源:https://www.codenong.com/8238231/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_8781.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?