亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

[原創]控制iphone震動強度和時間的privateapi

2019-11-14 20:42:57
字體:
來源:轉載
供稿:網友

主要調用AudioServicesPlaySystemSoundWithVibration這個PRivate api,傳入一個含有時間和強度的dictionary即可。
注意要引入AudioToolbox.framework。在iOS6,iOS7上測試通過。

private api有風險,注意不要在上架app中使用。

 1 NSMutableDictionary* dict = [NSMutableDictionary dictionary]; 2 NSMutableArray* arr = [NSMutableArray array ]; 3  4 [arr addObject:[NSNumber numberWithBool:YES]]; //vibrate for 2000ms 5 [arr addObject:[NSNumber numberWithInt:2000]]; 6  7  8 [dict setObject:arr forKey:@"VibePattern"]; 9 [dict setObject:[NSNumber numberWithFloat:0.3] forKey:@"Intensity"];10 11 AudioServicesPlaySystemSoundWithVibration(4095,nil,_buff);

 




寫了一個封裝demo
.h

 1 // 2 // YANGZShaking.h 3 // shaking 4 // 5 // Created by mmm on 14-1-11. 6 // Copyright (c) 2014年 yangz. All rights reserved. 7 // 8  9 #import <Foundation/Foundation.h>10 11 @interface YANGZVibePattern : NSObject12 + (YANGZVibePattern *)PatternWithIntensity:(float)intensity time:(NSUInteger)time isVibe:(BOOL)isVibe;13 @property (nonatomic) bool isV;14 @property (nonatomic) float intensity;15 @property (nonatomic) NSUInteger time;16 17 @end18 19 @interface YANGZShaking : NSObject20 21 22 - (YANGZShaking *)initWithPattern:(NSArray *)patterns;23 - (YANGZShaking *)initWithFile:(NSString *)file;24 - (YANGZShaking *)initWithLoop:(NSUInteger)vibe pause:(NSUInteger)pause;25 - (void)play;26 - (void)stop;27 28 @end

 

.m

  1 //  2 //  YANGZShaking.m  3 //  shaking  4 //  5 //  Created by mmm on 14-1-11.  6 //  Copyright (c) 2014年 yangz. All rights reserved.  7 //  8   9  10 #import "YANGZShaking.h" 11 #import <AudioToolbox/AudioToolbox.h> 12  13  14 @implementation YANGZVibePattern 15 + (YANGZVibePattern *)PatternWithIntensity:(float)intensity time:(NSUInteger)time isVibe:(BOOL)isVibe{ 16     YANGZVibePattern *pattern = [YANGZVibePattern new]; 17     pattern.isV = isVibe; 18     pattern.intensity = intensity; 19     pattern.time = time; 20     return pattern; 21 }; 22 @end 23  24  25 @interface YANGZShaking(){ 26     NSArray *_patterns; 27     NSMutableDictionary *_buff; 28     bool _isRepeat; 29 } 30 @end 31  32  33 @implementation YANGZShaking 34  35  36 - (YANGZShaking *)initWithPattern:(NSArray *)patterns{ 37     if ([super init]) { 38         _patterns = [[NSMutableArray alloc] initWithArray:patterns copyItems:YES]; 39         _buff=nil; 40         _isRepeat=NO; 41     } 42 return self; 43 } 44  45  46 - (YANGZShaking *)initWithFile:(NSString *)file{ 47     if ([super init]) { 48         _patterns = [NSMutableArray arrayWithContentsOfFile:file]; 49         _buff=nil; 50         _isRepeat=NO; 51     } 52 return self; 53 } 54 - (YANGZShaking *)initWithLoop:(NSUInteger)vibe pause:(NSUInteger)pause{ 55     if ([super init]) { 56         YANGZVibePattern *vibePattern = [YANGZVibePattern PatternWithIntensity:0.3 time:vibe isVibe:YES]; 57         YANGZVibePattern *pausePattern = [YANGZVibePattern PatternWithIntensity:0.9 time:pause isVibe:NO]; 58  59         _patterns = @[vibePattern,pausePattern]; 60         _buff=nil; 61         _isRepeat=YES; 62     } 63 return self; 64  65  66 } 67 - (void)play{ 68     [NSThread detachNewThreadSelector:@selector(loop) toTarget:self withObject:nil]; 69 } 70 - (void)stop{ 71  72 } 73  74  75 - (void)loop{ 76     NSUInteger i=0; 77     while (YES) { 78         NSUInteger pause = 0; 79         YANGZVibePattern *pattern = _patterns; 80         if (!pattern.isV) { 81         } 82         else{ 83             [self prepareBuffWithPattern:pattern]; 84             [self performSelectorOnMainThread:@selector(systemPlay) withObject:nil waitUntilDone:NO]; 85         } 86         [NSThread sleepForTimeInterval:pattern.time*1.0f/1000]; 87         i++; 88         if (i==[_patterns count] && !_isRepeat) { 89             break; 90         } 91         i=i%[_patterns count]; 92     } 93 } 94 - (void)prepareBuffWithPattern:(YANGZVibePattern *)pattern{ 95     NSMutableDictionary* dict = [NSMutableDictionary dictionary]; 96     NSMutableArray* arr = [NSMutableArray array ]; 97  98     [arr addObject:[NSNumber numberWithBool:YES]]; //vibrate for 2000ms 99     [arr addObject:[NSNumber numberWithInt:pattern.time]];100 101 102 103     [dict setObject:arr forKey:@"VibePattern"];104     [dict setObject:[NSNumber numberWithFloat:pattern.intensity] forKey:@"Intensity"];105     _buff = dict;106 }107 - (void)systemPlay{108     NSLog(@"system play @%");109 110     AudioServicesPlaySystemSoundWithVibration(4095,nil,_buff);111 }112 @end

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久一区二区| 九九热这里只有精品6| 最近2019中文免费高清视频观看www99| 欧美成人中文字幕在线| 国产深夜精品福利| 久热精品视频在线免费观看| 久久精品国产一区二区电影| 日韩电影中文 亚洲精品乱码| 青青久久av北条麻妃海外网| 成人国产在线视频| 久久国产精品久久久久| 久久久免费av| 亚洲最大中文字幕| 欧美日韩美女视频| 久久99精品国产99久久6尤物| 国产99久久精品一区二区 夜夜躁日日躁| 欧美综合在线观看| 在线电影av不卡网址| 色哟哟网站入口亚洲精品| 日韩视频在线免费观看| 91精品国产高清久久久久久| 国产日韩在线精品av| 精品国产一区二区三区久久久狼| 欧美视频裸体精品| 91精品国产一区| 97香蕉超级碰碰久久免费的优势| 欧美性xxxx极品高清hd直播| 久久天天躁狠狠躁夜夜av| 91欧美精品午夜性色福利在线| 欧美成人午夜影院| 热久久视久久精品18亚洲精品| 亲子乱一区二区三区电影| 欧美大片在线看免费观看| 午夜精品www| 精品爽片免费看久久| 亚洲图中文字幕| 国产69精品久久久| 精品亚洲一区二区三区在线观看| 精品av在线播放| 成人情趣片在线观看免费| 久久精品99久久香蕉国产色戒| 97在线视频免费看| 日韩亚洲成人av在线| 91免费精品视频| 亚洲三级免费看| 欧美极品少妇xxxxx| 国产日韩欧美自拍| 在线观看日韩视频| 久久久久国产精品免费| 欧美精品久久久久久久| 亚洲天堂成人在线视频| 日韩激情视频在线| 狠狠操狠狠色综合网| 成人欧美一区二区三区在线| 国产精品专区第二| 欧美中文字幕在线视频| 亚洲精品久久久久久久久久久久久| 亚洲18私人小影院| 午夜精品久久久久久久99黑人| 欧美国产极速在线| 日韩av电影在线播放| 日韩国产精品一区| 91精品综合久久久久久五月天| 91高清在线免费观看| 国产97在线|日韩| 一本大道香蕉久在线播放29| 青青久久av北条麻妃海外网| 4438全国亚洲精品在线观看视频| www.亚洲一二| 久久精品国产欧美亚洲人人爽| 日本久久亚洲电影| 久久五月天综合| 色狠狠av一区二区三区香蕉蜜桃| 粉嫩老牛aⅴ一区二区三区| 亚洲激情视频网站| 国产69精品久久久久99| 国产女精品视频网站免费| 国产激情久久久久| 黑丝美女久久久| 欧美日韩亚洲一区二| 亚洲乱码国产乱码精品精| 欧美一区二区大胆人体摄影专业网站| 黄色精品一区二区| 国产成人激情小视频| 欧美亚洲激情在线| 亚洲天堂久久av| 中文字幕精品网| 亚洲亚裔videos黑人hd| 一区二区福利视频| 亚洲最大av网站| 国产精品久久一| 亚洲精品日韩在线| 亚洲第一综合天堂另类专| 亚洲女在线观看| 国产精品男人的天堂| 亚洲国产精品成人va在线观看| 欧美色道久久88综合亚洲精品| 国产精品久久久久福利| 2020国产精品视频| 亚洲精品美女久久久| 国产欧美最新羞羞视频在线观看| 久久99青青精品免费观看| 日本欧美中文字幕| 久久精品精品电影网| 97在线视频免费播放| 日韩欧美在线国产| 九九久久国产精品| 欧日韩不卡在线视频| 欧美xxxx18国产| 欧美一级在线亚洲天堂| 亚洲精品免费一区二区三区| 97国产真实伦对白精彩视频8| 国产中文字幕日韩| 超碰97人人做人人爱少妇| 欧美激情精品久久久| 欧美日韩免费区域视频在线观看| 亚洲va久久久噜噜噜久久天堂| 亚洲成色777777在线观看影院| 久久精品电影网| 久久九九国产精品怡红院| 欧美日韩人人澡狠狠躁视频| 日韩免费电影在线观看| 亚洲乱码国产乱码精品精天堂| 欧美老妇交乱视频| 精品久久久久久电影| 国产精欧美一区二区三区| 欧美亚洲国产视频小说| 亚洲精品成人久久电影| 91国产精品视频在线| 亚洲激情成人网| 最新亚洲国产精品| 麻豆乱码国产一区二区三区| 国产精品人人做人人爽| 欧美成人精品不卡视频在线观看| 久久精视频免费在线久久完整在线看| 欧美老少配视频| 国产精品美女在线| 91久久精品国产91久久| 91久热免费在线视频| 国产精品久久久久免费a∨大胸| 亚洲精品国精品久久99热一| 久久精品国产亚洲7777| 精品久久久久久久久久国产| 欧美成人四级hd版| 久久精品99久久香蕉国产色戒| 亚洲国产精品悠悠久久琪琪| 国产精品ⅴa在线观看h| 久久亚洲精品中文字幕冲田杏梨| 国产精品午夜一区二区欲梦| 欧美在线视频一区二区| 色综合影院在线| 第一福利永久视频精品| 亚洲男人av在线| 国产美女久久精品香蕉69| 亚洲电影中文字幕| 欧美国产精品日韩| 精品女同一区二区三区在线播放| 亚洲第一区第二区| 亚洲成人精品久久| 中文字幕欧美日韩在线| 亚洲国产欧美在线成人app| 亚洲国产精品久久精品怡红院| 亚洲最新在线视频| 欧美激情xxxxx|