j'ai écrit le code suivant Mais encore la partie audio ne répond pascomment lire le fichier audio en fonction de la position de UIImageView qui se déplace par accéléromètre
#import "AccelerometerViewController.h"
@implementation AccelerometerViewController
@synthesize imageView;
@synthesize player;
- (void)viewDidLoad {
UIAccelerometer *accel = [UIAccelerometer sharedAccelerometer];
accel.delegate = self;
accel.updateInterval = 1.0f/60.0f;
carRadius = imageView.frame.size.width/2;
delta = CGPointMake(12.0,4.0);
translation = CGPointMake(0.0,0.0);
[super viewDidLoad];
}
- (void)accelerometer:(UIAccelerometer *)accelerometer
didAccelerate:(UIAcceleration *)acceleration {
if (acceleration.x>0) delta.x = 2; else delta.x = -2;
if (acceleration.y>0) delta.y = -2; else delta.y = 2;
[UIView beginAnimations:@"translate" context:nil];
imageView.transform =
CGAffineTransformMakeTranslation(translation.x, translation.y);
translation.x = translation.x + delta.x;
translation.y = translation.y + delta.y;
[UIView commitAnimations];
if (imageView.center.x + translation.x > 320 - carRadius ||
imageView.center.x + translation.x < carRadius) {
translation.x -= delta.x;
}
if (imageView.center.y + translation.y > 460 - carRadius ||
imageView.center.y + translation.y < carRadius) {
translation.y -= delta.y;
}
//playing Audio file to show warning if my car moved on to another lane
if (imageView.center.x + translation.x > 160)
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"tone" ofType:@"m4r"];
NSURL *file = [[NSURL alloc] initFileURLWithPath:path];
AVAudioPlayer *p =[[AVAudioPlayer alloc]
initWithContentsOfURL:file error:nil];
[file release];
self.player = p;
[p release];
[player prepareToPlay];
[player setDelegate:self];
[self.player play];
}
}
Peut-on s'il vous plaît me aider
Est-ce l'instruction if if (imageView.center.x + translation.x> 160) appelé correctement? Ajouter NSLog (@ "lecture audio d'avertissement"); ou quelque chose à tester. Quelles erreurs, le cas échéant, obtenez-vous? Aussi, pourquoi testez-vous le centre + traduction? Si je comprends bien, vous allez déplacer la voiture, alors pourquoi ne pas simplement tester la position centrale après avoir déplacé la voiture? –
oui son fonctionnement correctement lorsque je teste avec la messagerie NSLog, mais quand j'essaye de jouer de l'audio, il est frappé. – sony
Par "frappé" je suppose que vous vouliez taper "coincé". Voulez-vous dire que l'audio s'arrête à mi-chemin de la lecture, que cela ne joue rien du tout, que votre application se bloque ou que vous obtenez une erreur? S'il vous plaît fournir des messages d'erreur. –