如何在 Android 上以编程方式更改声音

How to Change Sound Programmatically on Android

我有一个播放歌曲文件的媒体播放器。然而,无论我如何尝试初始化它的音量,改变它的唯一方法是手动使用音量按钮。我试过了

    mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    int maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM);
    mAudioManager.setStreamVolume(AudioManager.STREAM_ALARM, maxVolume, 0); // Sets volume to max

甚至

mMediaPlayer.setVolume(1, 1);

但 none 有效。我过去使用过这段代码没有问题。我已经在 5.1.1 和 7.1.1 上尝试过我的应用程序,但没有成功。 phone 的音量是否以静音状态开始并不重要。我检查过并且 maxVolume 不为零(我也尝试过硬编码数字)。如何以编程方式设置初始音量?媒体播放器自动开始播放。 (我也尝试在媒体播放器的 onPrepared 侦听器中调用它,以防它有所作为。它没有。)我还检查了 phone 音量是否为 "fixed"。不是。

如何让我的播放器以最大音量开始播放(无论 phone 的设置是什么)?

我发现了问题。我弄错了流。而不是 STREAM_ALARM,它应该是 STREAM_MUSIC。可以在此处找到流列表:

https://developer.android.com/reference/android/media/AudioManager.html