Xar*_*mer 6 android volume android-audiomanager
我想知道什么是标志(或标志的可能值是什么)
audiomanager.setStreamVolume(int streamType,int index,int flags);
我知道我们可以使用最大流
audiomanger.getMaxStream(audioManager.getStreamMax(AudioManager.STREAM_MUSIC));
但在某些设备中它给出了13,15,这取决于Android版本或设备硬件以及它的范围是什么(最小可能值,最大可能值)
设置特定流的卷索引.
如果设备实现了isVolumeFixed()所指示的固定卷策略,则此方法无效.//这是什么意思.
参数
streamType The stream whose volume index should be set.
index The volume index to set. See getStreamMaxVolume(int) for the largest valid value.
flags One or more flags. // what are these flags
Run Code Online (Sandbox Code Playgroud)
Deb*_*ish 14
关于flag参数:AudioManager.java中定义了一些标志.您可以使用其中任何一个来获得所需的效果.例如:
audioManager.setStreamVolume(audioManager.STREAM_MUSIC,progress,AudioManager.FLAG_SHOW_UI);
Run Code Online (Sandbox Code Playgroud)
或者干脆
audioManager.setStreamVolume(audioManager.STREAM_MUSIC,progress,1);
Run Code Online (Sandbox Code Playgroud)
这是来自AudioManager.java的代码段,显示它们是如何定义的.
public static final int FLAG_SHOW_UI = 1 << 0;
/**
* Whether to include ringer modes as possible options when changing volume.
* For example, if true and volume level is 0 and the volume is adjusted
* with {@link #ADJUST_LOWER}, then the ringer mode may switch the silent or
* vibrate mode.
* <p>
* By default this is on for the ring stream. If this flag is included,
* this behavior will be present regardless of the stream type being
* affected by the ringer mode.
*
* @see #adjustVolume(int, int)
* @see #adjustStreamVolume(int, int, int)
*/
public static final int FLAG_ALLOW_RINGER_MODES = 1 << 1;
/**
* Whether to play a sound when changing the volume.
* <p>
* If this is given to {@link #adjustVolume(int, int)} or
* {@link #adjustSuggestedStreamVolume(int, int, int)}, it may be ignored
* in some cases (for example, the decided stream type is not
* {@link AudioManager#STREAM_RING}, or the volume is being adjusted
* downward).
*
* @see #adjustStreamVolume(int, int, int)
* @see #adjustVolume(int, int)
* @see #setStreamVolume(int, int, int)
*/
public static final int FLAG_PLAY_SOUND = 1 << 2;
/**
* Removes any sounds/vibrate that may be in the queue, or are playing (related to
* changing volume).
*/
public static final int FLAG_REMOVE_SOUND_AND_VIBRATE = 1 << 3;
/**
* Whether to vibrate if going into the vibrate ringer mode.
*/
public static final int FLAG_VIBRATE = 1 << 4;
/**
* Indicates to VolumePanel that the volume slider should be disabled as user
* cannot change the stream volume
* @hide
*/
public static final int FLAG_FIXED_VOLUME = 1 << 5;
/**
* Indicates the volume set/adjust call is for Bluetooth absolute volume
* @hide
*/
public static final int FLAG_BLUETOOTH_ABS_VOLUME = 1 << 6;
/**
* Adjusting the volume was prevented due to silent mode, display a hint in the UI.
* @hide
*/
public static final int FLAG_SHOW_SILENT_HINT = 1 << 7;
/**
* Indicates the volume call is for Hdmi Cec system audio volume
* @hide
*/
public static final int FLAG_HDMI_SYSTEM_AUDIO_VOLUME = 1 << 8;
/**
* Indicates that this should only be handled if media is actively playing.
* @hide
*/
public static final int FLAG_ACTIVE_MEDIA_ONLY = 1 << 9;
/**
* Like FLAG_SHOW_UI, but only dialog warnings and confirmations, no sliders.
* @hide
*/
public static final int FLAG_SHOW_UI_WARNINGS = 1 << 10;
/**
* Adjusting the volume down from vibrated was prevented, display a hint in the UI.
* @hide
*/
public static final int FLAG_SHOW_VIBRATE_HINT = 1 << 11;
/**
* Adjusting the volume due to a hardware key press.
* @hide
*/
public static final int FLAG_FROM_KEY = 1 << 12;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4091 次 |
| 最近记录: |