SORU
19 EKİM 2012, Cuma


İ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:

Screenshot of UI for creating custom vibrations in iOS 6

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
24 EKİM 2012, ÇARŞAMBA


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Angry Paintballer

    Angry Paintb

    8 Ocak 2012
  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • Engadget

    Engadget

    18 EYLÜL 2006