2016-08-31 1 views
0

J'ai regardé autour comme des fous. J'ai besoin de faire des actions personnalisées sur le bouton de volume à long et à court de presse (comme Snapchat, appuyez sur la touche prendre une photo, appuyez longuement sur la vidéo d'enregistrement), mais ont échoué.Détection longue et courte pression du bouton de volume - iOS

J'ai utilisé https://github.com/jpsim/JPSVolumeButtonHandler ce qui m'a permis de détecter l'événement de presse de bouton de volume. mais après avoir essayé très fort j'ai échoué à détecter quand c'est une pression longue et quand c'est une pression courte.

se réfèrent également à Detect iPhone Volume Button Hold? (iOS 8)

mon code

//Volume button handler 

self.volumeButtonHandler = [JPSVolumeButtonHandler volumeButtonHandlerWithUpBlock:^{ 
     // Volume Up Button Pressed 
     [self onVolumeUp]; 
    } downBlock:^{ 
     // Volume Down Button Pressed 
    }]; 

-(void)onVolumeUp { 
    if(self.volButtonTimer) { 
     secondsElapsed = 1; //To detect long press 
     [self.volButtonTimer invalidate]; 
    } 
    self.volButtonTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 
                target:self 
               selector:@selector(onTimerFire) 
               userInfo:nil 
               repeats:NO]; 

} 

-(void)onTimerFire { 
    NSLog(@"Long Press %d",secondsElapsed); 
    if (secondsElapsed > 1) 
    { 
     //Do Something 
    } 
    else secondsElapsed = 0; 

} 

S'il vous plaît je besoin d'aide à ce sujet. Recherché google mais échoué. Si Snapchat le fait, cela signifie que c'est faisable.

Merci

Répondre

0

Je suis confronté au même problème en ce moment. Ce que j'ai pu constater, c'est qu'Apple rejettera votre application si elle modifie certaines fonctionnalités matérielles de base. Voir ce lien: https://developer.apple.com/app-store/review/guidelines/. D'autre part, il est trompeur, car il existe de nombreuses applications de l'appareil photo sur App Store, comme Snapchat, qui utilisent clairement les boutons de volume/appui long à d'autres fins.

Quoi qu'il en soit, je réussis à gérer à long presse, voir ce fil: https://github.com/jpsim/JPSVolumeButtonHandler/issues/27#issuecomment-253979943

+0

Ahh, ces Snapchat - enfreignent les règles! –

+0

J'ai trouvé une solution, s'il vous plaît voir ma réponse éditée. – Timo

+0

Oui, nous avons également implémenté cette fonctionnalité, mais avec la méthode dispatch_after(). C'est mon gémissement personnel, parce que nous faisons Snapchat comme App. Besoin de recueillir des voix pour l'interdiction de Snapchat sur appstore) –