我有兩個AVAudioPlayers,稱爲「節點」和「區域」。他們有時會在同一時間玩。當發生這種情況時,我需要將「區域」的音量降至0.2。當'node'結束時,我需要將'zone'返回到它的原始卷(從數組中拉入)。我有一個adjustPlayerVolume方法,另一種方法是在節點完成時將'nodeIsPlaying'變量設置爲false。這兩項工作都很好。AVAudioPlayer音量條件不正確返回
以下代碼正在用於檢測卷是否需要上升或下降或保持原樣。只要應用程序運行,它就在一個循環內運行。
NSLog(@"Zone Volume = %f", zonePlayer.volume);
if ((nodeIsPlaying == false) && (zonePlayer.volume <= 0.200000)) {
float maxVolume = [[[locationArray objectAtIndex:1] valueForKey:@"volume"] floatValue];
[self adjustZoneVolume:maxVolume];
NSLog(@"adjustZoneVolume called, node isn't playing and zonePlayer volume needs to be raised");
}
if ((nodeIsPlaying == true) && (zonePlayer.volume != 0.200000)) {
float maxVolume = 0.2;
[self adjustZoneVolume:maxVolume];
NSLog(@"adjustZoneVolume called, node is playing and zonePlayer volume needs to be lowered");
}
頂部的日誌一致地向控制檯輸出0.200000的卷。
當nodeIsPlaying設置爲true時,即使NOT運算符應該防止發生此情況,也會返回底部條件。
當nodeIsPlaying設置爲false時,什麼都不會發生。
所以< =和!=操作有問題。
也許真的很愚蠢......
任何想法?
在此先感謝。
感謝AntonPalich,看起來像它會做的伎倆。 – MightyMeta