android 耳机 音量调节 id,Android链接耳机音量到主音量
据我所知,这是飞利浦Android TV用户的常见问题(例如
this篇中的第22页,或
that讨论).
一般来说,您的任务的模板是跟踪插入/拔出事件和“系统/音乐”音频流(或媒体按钮按下)的音量的服务,而不是对“有线耳机”音频“流”进行相应的更改(没有这样的流在“标准”Android中,但显然
类似于
“Android Philips”级别的东西.问题是,似乎不可能只使用没有“飞利浦Android TV API”的Android SDK来改变音量“有线耳机”音频流级别(可能它不是公共的).
“VolumeTrackingService”的模板源代码可能是这样的:
public class VolumeTrackingService extends Service {
private static final String TAG = VolumeTrackingService.class.getSimpleName();
public static final String ACTION_START = "VolumeTrackingService.ACTION_START";
public static final String ACTION_STOP = "VolumeTrackingService.ACTION_STOP";
HeadsetPlugIntentReceiver mHeadsetPlugReceiver;
private static boolean mHeadsetPlugged = false;
private SettingsContentObserver mSettingsContentObserver;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
mHeadsetPlugReceiver = new HeadsetPlugIntentReceiver();
registerReceiver(mHeadsetPlugReceiver,new IntentFilter(Intent.ACTION_HEADSET_PLUG));
mSettingsContentObserver = new SettingsContentObserver(new Handler());
getApplicationContext().getContentResolver().registerContentObserver(android.provider.Settings.System.CONTENT_URI,true,mSettingsContentObserver);
}
@Override
public void onDestroy() {
getApplicationContext().getContentResolver().unregisterContentObserver(mSettingsContentObserver);
unregisterReceiver(mHeadsetPlugReceiver);
super.onDestroy();
}
@Override
public int onStartCommand(Intent intent,int flags,int startId) {
if (intent != null) {
String actionRequested = intent.getAction();
if (ACTION_START.equals(actionRequested)) {
} else if (ACTION_STOP.equals(actionRequested)) {
stopSelf();
}
}
return START_STICKY;
}
private int getSystemVolumeInPercentage() {
AudioManager audioManager = (AudioManager) getSystemService(Context.AUdio_SERVICE);
final int streamVolumeMax = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
final int streamVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
return 100 * streamVolume / streamVolumeMax;
}
private void setHeadphonesVolume(int volumeInPercentage) {
// there should be magic of wired headphones volume level changing
}
private void processVolumeChanges() {
if (mHeadsetPlugged) {
int systemVolumeInPercentage = getSystemVolumeInPercentage();
setHeadphonesVolume(systemVolumeInPercentage);
}
}
public class SettingsContentObserver extends ContentObserver {
public SettingsContentObserver(Handler handler) {
super(handler);
}
@Override
public boolean deliverSelfNotifications() {
return super.deliverSelfNotifications();
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
if (mHeadsetPlugged ) {
processVolumeChanges();
}
}
}
public class HeadsetPlugIntentReceiver extends android.content.BroadcastReceiver {
@Override
public void onReceive(Context ctx,Intent intent) {
if (intent.getAction().equals(android.media.AudioManager.ACTION_HEADSET_PLUG)) {
mHeadsetPlugged = intent.getIntExtra("state",0) == 1;
}
}
}
}
不幸的是,它没有解决主要问题:改变有线耳机的音量水平(如果没有“飞利浦Android TV API”,可能是不可能的).
但是如果你的环绕声系统有遥控器你可以做一些解决方法:在上述服务中模拟音响系统遥控器命令,并通过连接到飞利浦49PUS6401 Android TV的USB主机的红外加密狗发送.
android 耳机 音量调节 id,Android链接耳机音量到主音量相关推荐
- android 耳机 音量调节 id,Android音频相关(一)插入耳机后调节音量(安全音量)...
一.安全音量提醒框的开启 二.修改安全音量提醒框显示 三.重启后还会显示安全音量提醒框 四.一些关于安全音量的初始值 一.安全音量提醒框的开启 安卓系统是有耳机音量保护机制的,对于一些出口欧盟的手机来 ...
- android子view获取父布局,Android获取布局父ID(Android get layout parent id)
Android获取布局父ID(Android get layout parent id) 我想知道View和ViewParent有什么区别? 我想获取ImageView父级的Id,但我不能这样做: m ...
- android 音量调节 seekbar,Android 使用SeekBar调节系统音量
以下是一个使用SeekBar来调节系统音量的实例: 1.XML: android:id="@+id/sound" android:layout_width="150px& ...
- android textview 常用属性id,Android TextView常用属性
[说明] TextView是用来显示文本的组件.以下介绍的是XML代码中的属性,在java代码中同样可通过 "组件名.setXXX()方法设置.如,tv.setTextColor(); [属 ...
- android listview 列加id,Android实战开发之ListView同一个item显示2列的实现方法
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Android实战开发中,ListView控件用途十分广泛,各种自定义控件多种多样.当项目要求实现一个2列的商品列表形式的界面,我们首先肯定想到用List ...
- android给组件加上id,Android组件化入门:一步步搭建组件化架构
Linux编程点击右侧存眷,免费入门到精晓! 作者丨Android手艺干货分享 https://www.jianshu.com/p/73b4fc288dd8 1.媒介 比来因为买卖需求调换,有考虑采用 ...
- android 音量调节框,Android 音量调节方法
Android 程序获取.设置铃声和音量通过程序获取android系统手机的铃声和音量.同样,设置铃声和音量的方法也很简单,如下代码: AudioManager mAudioManager = (Au ...
- 安卓耳机左右音量调节_安卓手机耳机声道怎么调
展开全部 你可以试下两种方法: 按住耳机的接电话键 把插口往外拔,直到拔到声音正常e69da5e887aa62616964757a686964616f31333365643661为止(也许只拔一点,也 ...
- android获取子线程id,Android 开发 知晓各种id信息 获取线程ID、activityID、内核ID
/*** Returns the identifier of this process's user. * 返回此进程的用户的标识符.*/Log.e(TAG,"Process.myUid() ...
最新文章
- Ubuntu 14.04 64bit上玩转graphviz绘图工具
- Sql Server插入数据并返回自增ID,@@IDENTITY,SCOPE_IDENTITY和IDENT_CURRENT的区别
- 9张表格学会,子网划分
- stylus之内置方法(Built-in Functions)
- 代码重构的方法和经验_关于烂代码优化重构的几点经验
- Linux配置本地yum源(RHEL8)
- Bulk处理文档大小的最佳值
- 中国连锁餐饮企业的资本之路
- 递归--递推之组合数
- HOLOLENS不适合加天空盒
- yii 提交表单报400错误,提示 “您提交的数据无法验证”,问题处理。
- 我从佛学里悟到的自由
- Java8 Stream list转map及问题解决
- 自动html5视频播放插件,视频自动转HTML5播放器插件
- 贪心(百练1328):安放雷达(区间问题)
- vul/0day/shellcode/payload/poc/exp
- vue使用原生高德地图
- 四川川之音文化传媒有限公司:电商物流运行呈加快恢复态势
- uni-app离线打包遇到的坑
- 一个撒尿只用3秒的男人,成为地球首富后,却要卖豪宅上火星?
热门文章
- 比火车硬座票还便宜的机票预订方法
- Cayman Finance对欧盟认可开曼群岛的合作感到高兴
- Docker 入门看这一篇就够了!
- 语音识别系列︱paddlespeech的开源语音识别模型测试(三)
- 无法完成您的itunes store的请求_itunes连不上网络怎么办 itunes连不上网络解决方法【详细介绍】...
- 【Web前端】设计模式、闭包
- C#界面美化推荐DotNetBar
- windows系统,删除文件慢,使用命令行快速删除大文件
- 【粉丝投稿】海外留学生回国三面华为成功拿下offer,附上大佬的面经希望帮助到大家!
- 案例解读华为隐私计算产品TICS如何实现城市跨部门数据隐私计算