寻找一个经过很长一段时间的方式来播放通知,噪音只有通过耳机(在插入时),在流分开STREAM_MUSIC,在某种程度上,可能中断,并在任何背景音乐完全听得见,安卓终于想出了音频属性 API。通过使用以下代码,我能够准确地实现我想要的通知,至少在 API 21 或更高版本中(这STREAM_MUSIC是我为较低版本找到的最佳选择):
AudioAttributes audioAttributes = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.build();
Run Code Online (Sandbox Code Playgroud)
不幸的是,似乎没有任何方法可以在我的应用设置中调整声音的音量。我目前AudioManager按以下方式使用 ,但它只允许对流进行音量调整,并且STREAM_ALARM, STREAM_NOTIFICATION, STREAM_RING, 或都不STREAM_MUSIC适用于用于声音化的任何路由策略:
audioManager.setStreamVolume(AudioManager.STREAM_NOTIFICATION, originalVolume, 0);
Run Code Online (Sandbox Code Playgroud)
有没有人对如何设置与AudioAttributes输出相对应的音量有任何建议?请记住,音频实际上是在BroadcastReceiver用于实际通知的 中播放的,并且音频设置将仅在某些设置中指定Activity。
notifications volume android-audiomanager android-5.0-lollipop
我想对阵*=,&=,+=,-=,|=,和^=正则表达式,但由于某些原因,下面的图案,可同时接收<=和>=:
modifyPat = re.compile('\s*[&\|\*/%\+-^]*=[^=]*')
Run Code Online (Sandbox Code Playgroud)
我做了一些挖掘,发现问题出现是由于^在模式中包含了字符.例如,如果我删除^下面的模式中的as,我会得到预期的匹配行为,但当然会失去能力匹配^=:
modifyPat = re.compile('\s*[&\|\*/%\+-]*=[^=]*')
Run Code Online (Sandbox Code Playgroud)
这里发生了什么,是否有任何方法可以包括^角色,以便匹配^=而不是匹配<=和>=我想要的?