有可能是因为电脑的CPU架构和真机的不同而引发获取的AudioUint 默认设备信息不同导致的。
解决办法:获取了AudioUint之后,手动设置一下各个重要参数。
下面是获取到模拟器上的AudioUint默认的信息:
下面是获取到真机上的AudioUint默认的信息:
可以看到mBitsPerChannel属性值的不同,通过手动设定这个值的属性,解决了真机没声音的问题。
AudioStreamBasicDescription _audioFormat;
_audioFormat.mBitsPerChannel = 16;
_audioFormat.mFormatFlags = 12;
AudioUnitSetProperty(_audioUnit,
kAudioUnitProperty_StreamFormat,
kAudioUnitScope_Input,
0,
&_audioFormat,
size);
如果你有其他见解,敬请赐教。