İOS özel titreşimler için API var mı?
İOS 5, kullanıcıların başlangıç uyarılar ve halkalar için özel titreşim desenleri oluşturmak edebiliyoruz. Aşağıdaki ekran görüntüsü bir (Rehber iOS 6'da uygulama) oluşturmak için UI gösterir:
Belgeleri de dahil olmak üzere arama dolaştım ve özel titreşimler oluşturma veya yürütme açığa çıkaran herhangi bir kamu API bulamıyorum. En yakın kısa, sabit bir titreşim oynamak için AudioToolbox
çerçevesini kullanmak için:
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
Kimseye özel titreşimler için API olup olmadığını biliyor mu?Mutlaka ortak API olmak zorunda değil. Kişiler uygulamasını kullanır ne olduğunu merak ediyorum. Bilen var mı?
P. S. Diğer CoreTelephony
(example) _CTServerConnectionCreate
tavsiye ettiler. Ben denedim, ama herhangi bir titreşim nedense gidiyor olamazdı.
CEVAP
Buralarda yabani saat İletişim Uygulaması kazma, nasıl çalıştığını anladım. sonra
ToneLibrary çerçevesinde bazı sınıf bunu yapmak için çağırmak ABNewPersonViewControlle.
Çağrı yığını bu gibi görünüyor:
0 CoreFoundation 0x3359a1d4 CFGetTypeID 0
1 CoreFoundation 0x33596396 __CFPropertyListIsValidAux 46
2 CoreFoundation 0x33517090 CFPropertyListCreateData 124
3 AudioToolbox 0x38ac255a AudioServicesPlaySystemSoundWithVibration 158
5 ToneLibrary 0x35a7811a -[TLVibrationRecorderView vibrationComponentDidStartForVibrationRecorderTouchSurface:] 38
6 ToneLibrary 0x35a772b2 -[TLVibrationRecorderTouchSurface touchesBegan:withEvent:] 342
7 UIKit 0x3610f526 -[UIWindow _sendTouchesForEvent:] 314
8 UIKit 0x360fc804 -[UIApplication sendEvent:] 376
"Web üzerinde bir şey buldum. "AudioServicesPlaySystemSoundWithvibration arama sonra
Kendim içine bakmaya karar verdim. AudioToolbox çerçevesinde özel bir işlevi var.
işlevin bildirimi gibi
void AudioServicesPlaySystemSoundWithVibration(SystemSoundID inSystemSoundID,id arg,NSDictionary* vibratePattern)
< . p ^"inSystemSoundİD" SystemSoundİD .""pass "". kSystemSoundİD_Vibrate AudioServicesPlaySystemSound gibi
< . p ^"arg" her şey hala çalışmaz önemli, nil pas , iyi.
< . p ^" işaretçi"", App Temas haline geçerler NSDictionary "vibratePattern
{
Yoğunluk = 1;
OffDuration = 1;
OnDuration = 10;
} kayıt kullanıcı girişi için.
Ama sadece bu işlev çağrısı bir titreşim hiçbir zaman bir son verecek. Bazı işlevi durdurmak için bulundu.
Cevap"". AudioServicesStopSystemSound. Ayrıca AudioToolbox çerçevesinde özel bir işlevi var.
işlevin bildirimi gibi
void AudioServicesStopSystemSound(SystemSoundID inSystemSoundID)
İletişim Uygulaması touchesBegan yöntem ve touchEnd yöntemi AudioServicesStopSystemSound içinde AudioServicesPlaySystemSoundWithvibration bu sonuca ulaşmak için kullanın sanırım.
Titreşim desen yöneticisi olacak TLVibrationController giriş işlemi kaydetmek için nesne.
Sonunda aşağıdaki gibi AudioServicesPlaySystemSoundWithvibration yeniden bütüne geçmek sözlük bir süreç oluşturun
NSMutableDictionary* dict = [NSMutableDictionary dictionary];
NSMutableArray* arr = [NSMutableArray array ];
[arr addObject:[NSNumber numberWithBool:YES]]; //vibrate for 2000ms
[arr addObject:[NSNumber numberWithInt:2000]];
[arr addObject:[NSNumber numberWithBool:NO]]; //stop for 1000ms
[arr addObject:[NSNumber numberWithInt:1000]];
[arr addObject:[NSNumber numberWithBool:YES]]; //vibrate for 1000ms
[arr addObject:[NSNumber numberWithInt:1000]];
[arr addObject:[NSNumber numberWithBool:NO]]; //stop for 500ms
[arr addObject:[NSNumber numberWithInt:500]];
[dict setObject:arr forKey:@"VibePattern"];
[dict setObject:[NSNumber numberWithInt:1] forKey:@"Intensity"];
AudioServicesPlaySystemSoundWithVibration(4095,nil,dict);
Bu yüzden eğer özel istiyorsan iOS titreşimler. AudioServicesPlaySystemSoundWithvibration ve AudioServicesStopSystemSound kullanın.
Reset veya özel sürüm kullanmaya Gah i...
Nasıl özel yöntemleri, alanları veya i...
Nasıl özel nesneler ile bir NSMutableA...
Nasıl bir Etkinlik için başlık çubuğun...
Modern Python özel istisnalar bildirme...