Comment l'iPhone sera mis à vibrer une fois?
Par exemple, lorsqu'un joueur perd une vie ou le jeu est terminé, l'iPhone devrait vibrer.
Comment l'iPhone sera mis à vibrer une fois?
Par exemple, lorsqu'un joueur perd une vie ou le jeu est terminé, l'iPhone devrait vibrer.
Il y a apparemment deux des fonctions semblables qui prend un paramètre kSystemSoundID_Vibrate:
1) AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
2) AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
À la fois les fonctions vibreur de l'iPhone. Mais lorsque vous utilisez la fonction première sur les périphériques qui ne prennent pas en charge les vibrations, il joue un bip sonore. La deuxième fonction de l'autre main ne fait rien sur les périphériques non pris en charge. Donc, si vous allez pour faire vibrer l'appareil en continu, comme une alerte, le sens commun dit, l'utilisation de la fonction 2.
Voir aussi "l'iPhone Tutoriel: la Meilleure façon de vérifier les capacités des appareils iOS" de l'article.
Tout d'abord, ajoutez le AudioToolbox cadre (AudioToolbox.cadre) à votre cible dans les Phases de construction.
Puis, en-tête de fichier à importer:
#import <AudioToolbox/AudioServices.h>
Et, voici comment vous le faites sur Swift (dans le cas où vous avez couru dans la même difficulté que j'ai fait)
Lien à l'encontre AudioToolbox.framework
(Aller à votre projet, sélectionnez votre cible, les phases de construction, Lien Binaire avec les Bibliothèques, les ajouter à la bibliothèque)
Une fois que c'est terminé:
import AudioToolbox.AudioServices
// Use either of these
AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))
AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate))
Le fromage, c'est que SystemSoundID
est essentiellement un typealias
(fantaisie swift typedef
) pour un UInt32
, et l' kSystemSoundID_Vibrate
est un habitué Int
. Le compilateur vous donne une erreur pour essayer de jeter le sort d' Int
de UInt32
, mais l'erreur se lit comme "Ne peut pas convertir à SystemSoundID", ce qui est source de confusion. Pourquoi ne pas apple vient de rendre un Swift enum est au delà de moi.
@aponomarenko va dans les détails, ma réponse est juste pour le Swifters.
J'ai eu beaucoup de mal avec ce pour les appareils qui ont la vibration éteint d'une certaine manière, mais nous avons besoin de travailler indépendamment, car il est essentiel pour notre application de fonctionner, et puisque c'est juste un entier à une méthode documentée appel, il va passer de validation. J'ai donc essayé de certains sons qui étaient à l'extérieur du bien documenté ici: https://github.com/TUNER88/iOSSystemSoundsLibrary
Je suis tombé sur 1352, qui fonctionne quel que soit le mode silencieux ou les paramètres de l'appareil (Paramètres->vibreur, sonnerie, vibreur en mode silencieux).
- (void)vibratePhone;
{
if([[UIDevice currentDevice].model isEqualToString:@"iPhone"])
{
AudioServicesPlaySystemSound (1352); //works ALWAYS as of this post
}
else
{
// Not an iPhone, so doesn't have vibrate
// play the less annoying tick noise or one of your own
AudioServicesPlayAlertSound (1105);
}
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.