TouchesMoved in Verbindung mit Sound

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • TouchesMoved in Verbindung mit Sound

    Hallo zusammen...

    ich habe derzeit ein Problem mit der Touch Funktion in Verbindung mit angehängter Sounddatei.
    Also ich will mal so sagen, es funktioniert.
    Allerdings ruckelt die Touch Funktion sobald der Ton abgespielt wird.
    Nehme ich den Code für den Sound heraus funktioniert es einwandfrei.

    Anbei mal der Code...
    vielleicht kann mir ja jemand dabei helfen.
    Danke vorab...

    Quellcode

    1. ​- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    2. UITouch *touch = [[event allTouches] anyObject];
    3. CGPoint location = [touch locationInView:touch.view];
    4. if (CGRectContainsPoint([gesicht frame], location)) {
    5. zahnbuerste.center = location;
    6. NSString *audioPath = [[NSBundle mainBundle] pathForResource:@"zahnbuerste" ofType:@"wav"];
    7. NSURL *audioURL = [NSURL fileURLWithPath:audioPath];
    8. audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioURL error:nil];
    9. [audioPlayer play];
    10. }
    11. if (CGRectContainsPoint([mund frame], zahnbuerste.center)) {
    12. gesicht.image = [UIImage imageNamed:@"open.jpg"];
    13. }
    14. }
    Alles anzeigen
  • Das Laden und Abspielen eines Sounds ist eine relativ aufwändige Geschichte und Cocoa Touch ruft bei einer Fingerbewegung die Methode touchesMoved:withEvent: mehrmals pro Sekunde auf. Dein Code lässt somit nicht nur ruckelig, sondern wahrscheinlich auch ein guter Kandidat, die App abstürzen zu lassen.
    „Meine Komplikation hatte eine Komplikation.“
  • Danke für die schnellen Antworten.

    @floschliep: Das mit der viewDidLoad passt nicht, da ich den Player erst beim Touch starten möchte.

    @macmoonshine: So wie Du es geschrieben hast, verhält es sich auch. Der Player startet jede sec und der touch ist dabei kaum bedienbar.
    Hast Du vielleicht Idee für mich?