OC更新到0.77后,开机声音仍然通过AudioDxe实现,为了实现多个插口或多声道发生,新增AudioOutMask参数声音输出掩码取代之前的AudioOut节点参数,许多小伙伴对这个参数的使用方法是一脸懵,我现在这里讲解一下它的正确用法:
故名思义,他是靠掩码来设置的!什么是掩码?一个八进制数,每位上只有零或一,零为不开启,一为开启!举个例子,我们现在有八个插口,通过测试,后耳机节点0,后低音节点1,后线路输入节点2,后线路输出节点3,后麦克风输入节点4,后中音输出节点5,前耳机节点6,前麦克风输入节点7!
那么开启后耳机节点0 就是00000001=1
开启后低音节点1就是00000010=2
开启后线路输入节点2就是00000100=4
开启后线路输出节点3就是1000=8 从现在开始前面的零我给省略了
开启节点4就是10000=16
开启节点5就是100000=32
开启节点6就是1000000=64
开启节点7就是10000000=128
这个八进制数从右向左数,分别为第0位第1位第2位直到第7位,哪一位上有1就代表开启哪个节点!最后AudioOutMask使用这个八位二进制数转化为的10进制数!
当然我们可以组合使用,使用掩码就是为了这个目的嘛!比如1001=9就是让后线路输出和后耳机同时播放开机duang!
实际上我们在使用的时候根本不知道哪个插口对应着什么节点,那么我们就需要具体测试,用1,2,4,8,16,32,64,128去测试具体哪个插口,然后根据自己的需要组合使用!
另外AudioOutMask还提供了两个额外的参数,一个是-1,懒人设置所有检测的通道均播放声音,另一个是0,用于系统报错,一旦设置了引导界面支持播放声音,但是audiooutmask设置为0,oc就会报错提醒你正确使用audiodxe