设置 AOSP 棉花糖图像的默认音量级别

问题描述 投票:0回答:2

我正在制作自定义 AOSP 棉花糖图像,我想在默认情况下将默认音量级别设置得更高。

我在中文论坛发现在frameworks/base/media/java/android/media/AudioSystem.java下可以找到

/**
* M: modify the default stream volume @{
*/
public static int[] DEFAULT_STREAM_VOLUME = new int[] {
    4,  // STREAM_VOICE_CALL
    15,  // STREAM_SYSTEM
    8,  // STREAM_RING
    8, // STREAM_MUSIC
    8,  // STREAM_ALARM
    8,  // STREAM_NOTIFICATION
    7,  // STREAM_BLUETOOTH_SCO
    15,  // STREAM_SYSTEM_ENFORCED
    11, // STREAM_DTMF
    11  // STREAM_TTS
};
/** @} */

在frameworks/base/services/core/java/com/android/server/audio/AudioService.java下是最小和最大音量值。

/** Maximum volume index values for audio streams */
/// M: Modify the max stream volume @{
private static int[] MAX_STREAM_VOLUME = new int[] {
    7,  // STREAM_VOICE_CALL
    15,  // STREAM_SYSTEM
    15,  // STREAM_RING
    15, // STREAM_MUSIC
    15,  // STREAM_ALARM
    15,  // STREAM_NOTIFICATION
    15, // STREAM_BLUETOOTH_SCO
    15,  // STREAM_SYSTEM_ENFORCED
    15, // STREAM_DTMF
    15  // STREAM_TTS
};

/** Minimum volume index values for audio streams */
private static int[] MIN_STREAM_VOLUME = new int[] {
    1,  // STREAM_VOICE_CALL
    0,  // STREAM_SYSTEM
    0,  // STREAM_RING
    0,  // STREAM_MUSIC
    0,  // STREAM_ALARM
    0,  // STREAM_NOTIFICATION
    1,  // STREAM_BLUETOOTH_SCO
    0,  // STREAM_SYSTEM_ENFORCED
    0,  // STREAM_DTMF
    0   // STREAM_TTS
};

我已将 DEFAULT_STREAM_VOLUME 表中的 STREAM_MUSIC、STREAM_ALARM 和 STREAM_NOTIFICATION 从 8 更改为 13,但在构建和制作图像时似乎没有任何效果。

知道可能是什么问题或更改默认音量级别的正确位置吗?

android android-6.0-marshmallow android-source
2个回答
0
投票

刷机后有恢复出厂设置吗?

默认音量仅适用于首次启动。然后,音量级别将在下次启动时保持不变。


0
投票

我不确定它是否与此处提到的 Android 版本相关,但在我看来(我不是 Android 专家),更改

DEFAULT_STREAM_VOLUME
并不有效,因为
AudioService
构造函数正在覆盖
DEFAULT_STREAM_VOLUME
的值。

例如:

        int defaultAlarmVolume = SystemProperties.getInt("ro.config.alarm_vol_default", -1);
        if (defaultAlarmVolume != -1 &&
                defaultAlarmVolume <= MAX_STREAM_VOLUME[AudioSystem.STREAM_ALARM]) {
            AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_ALARM] = defaultAlarmVolume;
        } else {
            // Default is 6 out of 7 (default maximum), so scale accordingly.
            AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_ALARM] =
                        6 * MAX_STREAM_VOLUME[AudioSystem.STREAM_ALARM] / 7;
        }

https://cs.android.com/android/platform/superproject/main/+/main:frameworks/base/services/core/java/com/android/server/audio/AudioService.java;drc=02639b8643cfcdcddef2d5fcb74e042174f06c1f; l=1213

我认为正确的方法是更改相关的

SystemProperties
,例如
ro.config.alarm_vol_default

© www.soinside.com 2019 - 2024. All rights reserved.