「ノード」と「ゾーン」という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に設定されている場合、何も起こりません。
したがって、<=および!=操作に問題があります。
おそらく本当に愚かな何か...
何か案は?
前もって感謝します。