Я использую одну тонкую технику:
я установил уровень предупреждений в проекте, о котором сообщат как ошибки. И наш Непрерывный Сервер интеграции создает целое решение наряду с документацией XML на каждого ckeck-в.
, Если разработчики не пишут комментарии, сбои сборки! И после этого, они должны записать комментарии, так через некоторое время, они привыкли к нему.
Это не агрессивно с точки зрения давления, но я нахожу его как хороший способ исправить их поведение.
Как насчет этого: (если время прошло отрицательно, то звук исчезнет, в противном случае исчезнет)
- (void) fadeInOutVolumeOverTime: (NSNumber *)time
{
#define fade_out_steps 0.1
float theVolume = player.volume;
NSTimeInterval theTime = [time doubleValue];
int sign = (theTime >= 0) ? 1 : -1;
// before we call this, if we are fading out, we save the volume
// so that we can restore back to that level in the fade in
if ((sign == 1) &&
((theVolume >= savedVolume) ||
(theTime == 0))) {
player.volume = savedVolume;
}
else if ((sign == -1) && (theVolume <= 0)) {
NSLog(@"fading");
[player pause];
[self performSelector:@selector(fadeInOutVolumeOverTime:) withObject:[NSNumber numberWithDouble:0] afterDelay:1.0];
}
else {
theTime *= fade_out_steps;
player.volume = theVolume + fade_out_steps * sign;
[self performSelector:@selector(fadeInOutVolumeOverTime:) withObject:time afterDelay:fabs(theTime)];
}
}
Вот как я это делаю:
-(void)doVolumeFade
{
if (self.player.volume > 0.1) {
self.player.volume = self.player.volume - 0.1;
[self performSelector:@selector(doVolumeFade) withObject:nil afterDelay:0.1];
} else {
// Stop and get the sound ready for playing again
[self.player stop];
self.player.currentTime = 0;
[self.player prepareToPlay];
self.player.volume = 1.0;
}
}