「ノード」と「ゾーン」という2つのAVAudioPlayerがあります。彼らは時々同時に演奏するでしょう。これが発生した場合、「ゾーン」のボリュームを0.2に下げる必要があります。'node'が終了したら、'zone'を元のボリューム(配列からプルイン)に戻す必要があります。私はadjustPlayerVolumeメソッドと、ノードが終了したときに'nodeIsPlaying'変数をfalseに設定する別のメソッドを持っています。これらは両方とも正常に機能します。
次のコードは、ボリュームを上げるか下げるか、そのままにする必要があるかを検出するために使用されています。これは、アプリが実行されている限り実行されるループ内にあります。
            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に設定されている場合、何も起こりません。
したがって、<=および!=操作に問題があります。
おそらく本当に愚かな何か...
何か案は?
前もって感謝します。