SystemSoundID 有时会随设备音量而变化
Posted
技术标签:
【中文标题】SystemSoundID 有时会随设备音量而变化【英文标题】:SystemSoundID Sometimes Changing With Device Volume 【发布时间】:2013-05-20 00:30:16 【问题描述】:我正在使用SystemSoundID
类在我的游戏中播放音效,但结果有些奇怪。我的一些声音,包括下面的landed1
,会根据音量按钮改变音量,但其他的,比如deathsound
总是以最大音量播放。以下是与这两种声音相关的所有代码。
SystemSoundID deathsound;
SystemSoundID landed1;
...
NSURL *soundURL;
soundURL = [[NSBundle mainBundle] URLForResource:@"SMPKLanded1" withExtension:@"mp3"];
AudioservicesCreateSystemSoundID ((__bridge CFURLRef) soundURL, &landed1);
soundURL = [[NSBundle mainBundle] URLForResource:@"SMPKDeathSound" withExtension:@"mp3"];
AudioServicesCreateSystemSoundID ((__bridge CFURLRef) soundURL, &deathsound);
...
AudioServicesPlaySystemSound(landed1);
...
AudioServicesPlaySystemSound(deathsound);
如果代码和文件类型基本相同,为什么两者的行为会如此不同?这毫无意义!
【问题讨论】:
【参考方案1】:好吧,经过大量时间让自己发疯后,我终于想通了。其中一些与AVAudioPlayer
同时播放,出于某种原因,这使得它们符合音量按钮,而另一些则不符合。我的下一步显然是创建一个无声的AVAudioPlayer
,我现在已经这样做了,并且该程序可以正常运行。
作为后续问题,是否有人知道为什么拥有AVAudioPlayer
会影响SystemSoundIDs
?
【讨论】:
以上是关于SystemSoundID 有时会随设备音量而变化的主要内容,如果未能解决你的问题,请参考以下文章
scrollWidth,clientWidth,offsetWidth的区别
好奇 CKAsset 的 fileUrl 是不是会随时间变化?
scrollWidth,clientWidth,offsetWidth的区别