淄博网站建设报价,办公室设计说明万能模板,公司网站应该怎么做,昆山网站建设公司哪家好Android 一体机研发之修改系统设置————屏幕亮度
Android 一体机研发之修改系统设置————声音
Android 一体机研发之修改系统设置————自动锁屏
修改系统设置系列篇章马上开张了#xff01; 本章将为大家细节讲解声音。
对于声音功能大家都不陌生#xff0c;在多… Android 一体机研发之修改系统设置————屏幕亮度
Android 一体机研发之修改系统设置————声音
Android 一体机研发之修改系统设置————自动锁屏
修改系统设置系列篇章马上开张了 本章将为大家细节讲解声音。
对于声音功能大家都不陌生在多媒体时代它是很必要的同样也是缺它不可的版块而在一体机实际应用中这里更改的是媒体音量。 声音
几个常见的 “音量类型” STREAM_VOICE_CALL 通话、STREAM_SYSTEM 系统、STREAM_RING 铃声、 STREAM_MUSIC 媒体音量、STREAM_ALARM 闹钟、STREAM_NOTIFICATION 通知。
设计思路
获取音频管理器获取媒体音量最大值获取系统当前媒体音量通过seekBar设置系统媒体音量
具体实现
获取音频管理器
Java AudioManager mAudioManager (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);Kotlin
mAudioManager this.getSystemService(Context.AUDIO_SERVICE) as AudioManager获取媒体音量最大值
Java
mMaxVolume mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);Kotlin
mMaxVolume mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)获取系统当前媒体音量
Java
/*** 获取系统媒体音量* STREAM_VOICE_CALL 通话* STREAM_SYSTEM 系统* STREAM_RING 铃声* STREAM_MUSIC 媒体音量* STREAM_ALARM 闹钟* STREAM_NOTIFICATION 通知*/
mCurrentVolume mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);Kotlin
mCurrentVolume mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC)设置系统媒体音量
Java voiceBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {Log.e(进度显示 , onProgressChanged: progress);//设置系统媒体音量setStreamVolume(progress);}Overridepublic void onStartTrackingTouch(SeekBar seekBar) {}Overridepublic void onStopTrackingTouch(SeekBar seekBar) {}});/*** 设置系统媒体音量* setStreamVolume 直接设置音量* adjustStreamVolume 步长式设置音量即10,20,30这样阶梯式* p* 参数1音量类型* 参数2音量数值* 参数3* AudioManager.FLAG_SHOW_UI 调整音量时显示系统音量进度条 , 0 则不显示* AudioManager.FLAG_ALLOW_RINGER_MODES 是否铃声模式* AudioManager.FLAG_VIBRATE 是否震动模式* AudioManager.FLAG_SHOW_VIBRATE_HINT 震动提示* AudioManager.FLAG_SHOW_SILENT_HINT 静音提示* AudioManager.FLAG_PLAY_SOUND 调整音量时播放声音*/private void setStreamVolume(int volume) {mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, AudioManager.FLAG_PLAY_SOUND);}Kotlin seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {Log.i(onProgressChanged----, progress)mCurrentVolume progress//更新页面updateNum(mCurrentVolume)//设置媒体音量setStreamVolume(mCurrentVolume)}override fun onStartTrackingTouch(seekBar: SeekBar?) {}override fun onStopTrackingTouch(seekBar: SeekBar?) {}})/*** 更新页面显示*/private fun updateNum(volume: Int) {//tv_volume.text volume.toString()seekBar.progress volume}/*** 设置系统媒体音量*/private fun setStreamVolume(volume: Int) {mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, AudioManager.FLAG_SHOW_UI)}监听系统按键 //监听系统按键Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {switch (keyCode) {case KeyEvent.KEYCODE_VOLUME_DOWN:if (mCurrentVolume 0) {mCurrentVolume--;} else {mCurrentVolume 0;}voiceBar.setProgress(mCurrentVolume);setStreamVolume(mCurrentVolume);Log.e(音量减 , onKeyDown: mCurrentVolume );return true;case KeyEvent.KEYCODE_VOLUME_UP:if (mCurrentVolume mMaxVolume) {mCurrentVolume;} else {mCurrentVolume mMaxVolume;}voiceBar.setProgress(mCurrentVolume);setStreamVolume(mCurrentVolume);Log.e(音量加 , onKeyDown: mCurrentVolume );return true;/* case KeyEvent.KEYCODE_VOLUME_MUTE:return true;*/}return super.onKeyDown(keyCode, event);}完整操作
Java
/*** author 拉莫帅* date 2023/2/8* address* Desc 修改系统声音媒体声音*/
public class ChangeVoiceActivity extends AppCompatActivity {private AudioManager mAudioManager;private SeekBar voiceBar;//当前音量private int mCurrentVolume 0;//最大音量private int mMaxVolume 0;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_chanage_voice);init();}private void init() {voiceBar findViewById(R.id.voiceBar);ImageView back findViewById(R.id.back);TextView title findViewById(R.id.title);title.setText(声音);mAudioManager (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);/*** 获取系统媒体音量* STREAM_VOICE_CALL 通话* STREAM_SYSTEM 系统* STREAM_RING 铃声* STREAM_MUSIC 媒体音量* STREAM_ALARM 闹钟* STREAM_NOTIFICATION 通知*/mCurrentVolume mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);//获取媒体音量最大值mMaxVolume mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);Log.e(进度 , init: mCurrentVolume --- mMaxVolume);voiceBar.setMax(mMaxVolume);//更新进度条voiceBar.setProgress(mCurrentVolume);back.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {finish();}});voiceBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {Log.e(进度显示 , onProgressChanged: progress);setStreamVolume(progress);}Overridepublic void onStartTrackingTouch(SeekBar seekBar) {}Overridepublic void onStopTrackingTouch(SeekBar seekBar) {}});}//监听系统按键Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {switch (keyCode) {case KeyEvent.KEYCODE_VOLUME_DOWN:if (mCurrentVolume 0) {mCurrentVolume--;} else {mCurrentVolume 0;}voiceBar.setProgress(mCurrentVolume);setStreamVolume(mCurrentVolume);Log.e(音量减 , onKeyDown: mCurrentVolume );return true;case KeyEvent.KEYCODE_VOLUME_UP:if (mCurrentVolume mMaxVolume) {mCurrentVolume;} else {mCurrentVolume mMaxVolume;}voiceBar.setProgress(mCurrentVolume);setStreamVolume(mCurrentVolume);Log.e(音量加 , onKeyDown: mCurrentVolume );return true;/* case KeyEvent.KEYCODE_VOLUME_MUTE:return true;*/}return super.onKeyDown(keyCode, event);}/*** 设置系统媒体音量* setStreamVolume 直接设置音量* adjustStreamVolume 步长式设置音量即10,20,30这样阶梯式* p* 参数1音量类型* 参数2音量数值* 参数3* AudioManager.FLAG_SHOW_UI 调整音量时显示系统音量进度条 , 0 则不显示* AudioManager.FLAG_ALLOW_RINGER_MODES 是否铃声模式* AudioManager.FLAG_VIBRATE 是否震动模式* AudioManager.FLAG_SHOW_VIBRATE_HINT 震动提示* AudioManager.FLAG_SHOW_SILENT_HINT 静音提示* AudioManager.FLAG_PLAY_SOUND 调整音量时播放声音*/private void setStreamVolume(int volume) {mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, AudioManager.FLAG_PLAY_SOUND);}
}Kotlin
class VolumeActivity : AppCompatActivity() {//音频管理器private lateinit var mAudioManager: AudioManager//当前音量private var mCurrentVolume: Int 0//最大音量private var mMaxVolume: Int 0override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_volume)init()setListener()}SuppressLint(SetTextI18n)private fun init() {mAudioManager this.getSystemService(Context.AUDIO_SERVICE) as AudioManager/*** ringerMode 音量模式* RINGER_MODE_NORMAL 正常* RINGER_MODE_SILENT 静音* RINGER_MODE_VIBRATE 震动*/when (mAudioManager.ringerMode) {AudioManager.RINGER_MODE_NORMAL - tv_mode.text 当前音量模式正常AudioManager.RINGER_MODE_SILENT - tv_mode.text 当前音量模式静音AudioManager.RINGER_MODE_VIBRATE - tv_mode.text 当前音量模式震动}/*** 获取系统媒体音量* STREAM_VOICE_CALL 通话* STREAM_SYSTEM 系统* STREAM_RING 铃声* STREAM_MUSIC 媒体音量* STREAM_ALARM 闹钟* STREAM_NOTIFICATION 通知*/mCurrentVolume mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC)//获取媒体音量最大值mMaxVolume mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)seekBar.max mMaxVolumetv_max.text 最大音量$mMaxVolumeupdateNum(mCurrentVolume)}private fun setListener() {btn_mode.setOnClickListener {mAudioManager.ringerMode AudioManager.RINGER_MODE_NORMALtv_mode.text 当前音量模式正常}seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {Log.i(onProgressChanged----, progress)mCurrentVolume progressupdateNum(mCurrentVolume)setStreamVolume(mCurrentVolume)}override fun onStartTrackingTouch(seekBar: SeekBar?) {}override fun onStopTrackingTouch(seekBar: SeekBar?) {}})}/*** 更新页面显示*/private fun updateNum(volume: Int) {tv_volume.text volume.toString()seekBar.progress volume}/*** 设置系统媒体音量* setStreamVolume 直接设置音量* adjustStreamVolume 步长式设置音量即10,20,30这样阶梯式** 参数1音量类型* 参数2音量数值* 参数3* AudioManager.FLAG_SHOW_UI 调整音量时显示系统音量进度条 , 0 则不显示* AudioManager.FLAG_ALLOW_RINGER_MODES 是否铃声模式* AudioManager.FLAG_VIBRATE 是否震动模式* AudioManager.FLAG_SHOW_VIBRATE_HINT 震动提示* AudioManager.FLAG_SHOW_SILENT_HINT 静音提示* AudioManager.FLAG_PLAY_SOUND 调整音量时播放声音*/private fun setStreamVolume(volume: Int) {mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, AudioManager.FLAG_SHOW_UI)}最近忙里偷闲↓↓↓↓【谁家de码农陈先生】↓↓↓↓里面定时给大家分享技术博文、前方高能资讯内容欢迎各位老板点赞关注你们就是我的动力源泉