setStreamMute无法Mute部分stream
来源:互联网 发布:飞鸟淘宝客赚钱吗 编辑:程序博客网 时间:2024/06/05 05:55
最近在写Android的Audio代码时发现,setStreamMute对一些stream type没有效果。例如alarm stream。
后调查发现,在set stream mute的时候会调用函数isStreamAffectedByMute来判断指定的stream是否可以mute。
函数isStreamAffectedByMute中使用mMuteAffectedStreams进行判断。
return (mMuteAffectedStreams & (1 << streamType)) != 0;
mMuteAffectedStreams在函数readPersistedSettings中被赋值:
mMuteAffectedStreams = System.getInt(cr,
System.MUTE_STREAMS_AFFECTED,
((1 << AudioSystem.STREAM_MUSIC)|(1 << AudioSystem.STREAM_RING)|(1 << AudioSystem.STREAM_SYSTEM)));
函数loadVolumeLevels中对此进行了设定:
loadSetting(stmt, Settings.System.MUTE_STREAMS_AFFECTED,
((1 << AudioManager.STREAM_MUSIC) |
(1 << AudioManager.STREAM_RING) |
(1 << AudioManager.STREAM_NOTIFICATION) |
(1 << AudioManager.STREAM_SYSTEM)));
如果要使某种stream可被mute,在此处添加该stream即可。
后调查发现,在set stream mute的时候会调用函数isStreamAffectedByMute来判断指定的stream是否可以mute。
函数isStreamAffectedByMute中使用mMuteAffectedStreams进行判断。
return (mMuteAffectedStreams & (1 << streamType)) != 0;
mMuteAffectedStreams在函数readPersistedSettings中被赋值:
mMuteAffectedStreams = System.getInt(cr,
System.MUTE_STREAMS_AFFECTED,
((1 << AudioSystem.STREAM_MUSIC)|(1 << AudioSystem.STREAM_RING)|(1 << AudioSystem.STREAM_SYSTEM)));
函数loadVolumeLevels中对此进行了设定:
loadSetting(stmt, Settings.System.MUTE_STREAMS_AFFECTED,
((1 << AudioManager.STREAM_MUSIC) |
(1 << AudioManager.STREAM_RING) |
(1 << AudioManager.STREAM_NOTIFICATION) |
(1 << AudioManager.STREAM_SYSTEM)));
如果要使某种stream可被mute,在此处添加该stream即可。
- setStreamMute无法Mute部分stream
- setStreamMute无法Mute部分stream
- 无法创建 ADODB.Stream 对象
- 线程同步mute
- Stream
- stream
- stream
- Stream
- stream
- stream
- Stream
- stream
- Stream
- Stream
- Stream
- Stream
- Stream
- Stream
- 战地日记
- 用java代码解释死锁
- linux vi操作
- log4cplus 链接不成功
- 将Access数据库导入到SQL Server 2005 Express
- setStreamMute无法Mute部分stream
- GCC 编译 warnings
- 黑马程序员_Android-Activity初步与Intent初步
- xcode4.2 空项目 怎么加载view
- apache ab.exe
- IE6版本升级提示
- android-------listview 实现radiobutton 单选
- LVM动态磁盘简记
- PhoneGap开发初体验:用HTML5技术开发本地应用