标签: iphone-vibrate

iOS中是否有用于自定义振动的API?

从iOS 5开始,用户可以为警报和响铃创建自定义振动模式.以下屏幕截图显示了用于创建一个UI(iOS 6中的Contacts应用程序)的UI:

用于在iOS 6中创建自定义振动的UI的屏幕截图

我一直在搜索,包括文档,我找不到任何公开的API来揭示自定义振动的创建或回放.最接近的是使用AudioToolbox框架来发挥短暂的持续振动:

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
Run Code Online (Sandbox Code Playgroud)

有谁知道是否有自定义振动的API?它不一定是公共API.我很想知道联系人应用程序使用的是什么.有人知道吗?

PS其他人_CTServerConnectionCreateCoreTelephony(例子)中提出了建议.我试过了,但由于某种原因无法振动.

2015年10月更新:

iOS 9中有新的私有API可与兼容设备中的Taptic Engine进行交互.有关详细信息,请参阅iOS 9中的Taptic.

iphone-vibrate vibration ios

70
推荐指数
1
解决办法
4万
查看次数

以编程方式使iPhone振动

可能重复:
让iPhone振动

你怎么能以编程方式让iPhone振动?

任何想法,或教程链接赞赏.

iphone iphone-vibrate

36
推荐指数
1
解决办法
2万
查看次数

在录制应用程序中执行振动

我试图在类似于Snapchat的应用程序中执行振动,它既使用音频输出又使用输入,并支持来自其他应用程序的音频混合,但这似乎是我最初认为的更难的任务.重要的是要知道我不是在播放或录制过程中试图振动.通过阅读我在这个主题上可以找到的所有文档,这就是我所了解的:

  • 为了支持播放和录制(输出和输入),我需要使用 AVAudioSessionCategoryPlayAndRecord
  • AudioServicesPlaySystemSound (kSystemSoundID_Vibrate)任何录制类别都不支持使手机振动,包括AVAudioSessionCategoryPlayAndRecord.
  • 可以通过添加选项来启用其他应用程序来播放音频AVAudioSessionCategoryOptionMixWithOthers.

因此,我在我的app委托中执行此操作:

NSError *error = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionMixWithOthers error:&error];
Run Code Online (Sandbox Code Playgroud)

我尝试但失败的振动的可能解决方案是:

  • AVAudioSession在振动之前停用共享,然后直接激活它.

    [[AVAudioSession sharedInstance] setActive:NO error:nil];         
    AudioServicesPlaySystemSound (kSystemSoundID_Vibrate);
    [[AVAudioSession sharedInstance] setActive:YES error:nil];
    
    Run Code Online (Sandbox Code Playgroud)

    这成功地执行了振动,但之后,当我尝试录制电影时,音频被淹没(或其他东西导致它非常沉默).它还给我一个错误,说我不允许在不先删除其I/O设备的情况下停用会话.

  • 在振动之前更改类别,然后将其更改回来.

    [[AVAudioSession sharedInstance] setActive:NO error:nil];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
    [[AVAudioSession sharedInstance] setActive:YES error:nil];
    
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    
    [[AVAudioSession sharedInstance] setActive:NO error:nil];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionMixWithOthers error:nil];
    [[AVAudioSession sharedInstance] setActive:YES error:nil];
    
    Run Code Online (Sandbox Code Playgroud)

    这个解决方案时不时出现,但似乎对我不起作用.即使类别似乎已设定,也不会发生振动.如果我设置usesApplicationAudioSession = YES了AVCaptureSession,这可能仍然是一个有效的解决方案,但我还没有使它工作.

资料来源:

avfoundation iphone-vibrate ios avaudiosession

9
推荐指数
1
解决办法
973
查看次数

如何在程序设置中检查设备是否设置振动模式?

我正在为iOS制作VoIP应用程序.对于来电,我设置了一些自定义铃声.它工作正常,但我想检查设备设置是否设置为振动模式或不是以编程方式.

我在网上搜索过这个问题,但我只找到了静音模式检测的答案.相反,我想检查设备是否处于振动模式.

当来电来到我的应用程序时,如果设备设置设置为振动模式,我想使用振动模式.

任何人都可以帮助我吗?

objective-c iphone-vibrate ios

7
推荐指数
1
解决办法
1262
查看次数

自定义iPhone振动的强度

这是一个与iOS中的自定义振动API有关的问题吗?.我能够创建自定义振动模式,但无法控制强度.

这是凯文曹的答案复制的,它可以实现自定义振动模式:

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);
Run Code Online (Sandbox Code Playgroud)

@"Intensity"使用int值添加键的代码行不起作用,我不知道如何查看AudioServicesPlaySystemSoundWithVibration方法内部来解决问题.我有什么要传递给它以便实际改变强度?现在,如果我传递1,1000,0.4或0.0001并不重要,它总是相同的强度(在带有iOS7的iPhone 4上).任何人都可以重新创建吗?

我希望不仅能够创建振动模式,还能够创建平滑的振动包络.如何?


(由于这是一个用于仪器设计的研究项目,我(尚未)关注App Store的限制.)

iphone iphone-privateapi iphone-vibrate vibration ios

6
推荐指数
1
解决办法
3966
查看次数

如何改变iOS/Swift中的振动持续时间?

可以使设备振动AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate)).但是还有一种方法可以设定振动过程的持续时间吗?我希望它更短.

我想在完全结束之前停止振动,例如在0.05秒之后.这可能吗?

iphone-vibrate ios swift

6
推荐指数
0
解决办法
6292
查看次数

像偷看和流行一样手动振动iPhone 6S?

如何手动触发像使用peek&pop或应用程序快捷方式时发生的单击式振动?

iphone-vibrate vibration ios peek-pop

6
推荐指数
2
解决办法
2412
查看次数

iOS - 本地通知 - 定制振动或振动更长时间

我正在尝试构建一个像闹钟一样工作的iPhone应用程序,我正在使用UILocalNotification

问题

  • 我希望手机能够振动更长时间.然而目前它只振动一次.

替代方法

  1. 是否可以使用自定义振动模式?(http://www.pcworld.com/article/242238/how_to_use_custom_vibrations_in_ios_5.html)

  2. 当推送通知被触发时,是否可以执行方法?(但应用程序可能甚至没有运行,但它需要工作)

  3. NSTimer是一个选择吗?(但应用程序可能甚至没有运行,但它需要工作)

  4. 还有其他替代品吗?

iphone-vibrate ios uilocalnotification

5
推荐指数
1
解决办法
3981
查看次数

当我点击按钮时,如何让我的iphone振动两次?IOS的SWIFT-的Xcode

当我点击一个按钮(就像一个短信警报振动),我搜索我的iphone振动两次

随着AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate)) 我只获得一个正常的振动,但是我想要两个短裤:/.

有人可以帮帮我吗?谢谢

iphone-vibrate ios swift

3
推荐指数
2
解决办法
9454
查看次数

如何设置iPhone振动时长?

我正在使用 AudioServicesPlaySystemSound 来调用振动函数:

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
Run Code Online (Sandbox Code Playgroud)

有什么办法可以设置振动的持续时间吗?我知道默认持续时间是 0.4 秒,但有时我想让设备振动的时间比这个短或长。

iphone iphone-vibrate

2
推荐指数
1
解决办法
4781
查看次数

为什么我的iPhone不振动?

当我选择UITableView中的单元格时,我尝试使用Vibration.

在我的didselectedRowAtIndexPath我已经把这个代码:

    #pragma mark - DidselectRow

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    //SPINNER
    [spinner startAnimating];


    //[self performSelector:@selector(pushDetailView:) withObject:tableView afterDelay:0.1];

    int *riga = indexPath.row;
    [NSThread detachNewThreadSelector:@selector(pushDetailView) toTarget:self withObject:riga];

    ////////////////////////////////////////////////////////////////////////////////
    //                          VIBRATION ALLERT                                  //
    ////////////////////////////////////////////////////////////////////////////////

    // Issue vibrate
    //AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
    NSLog(@"Vibra?");
    ////////////////////////////////////////////////////////////////////////////////
    //                          VIBRATION ALLERT  FIN                             //
    ////////////////////////////////////////////////////////////////////////////////



    NSLog(@"Seleziono l'immagine: %@", [photoTitles objectAtIndex:indexPath.row]);

    //creo un'istanza di DettaglioView
    DettaglioView *dettaglioImmagine = [[DettaglioView alloc] initWithNibName:@"DettaglioView" bundle:nil];



    //Inseirsco il titolo nella Navigation BAR della vista
    dettaglioImmagine.titoloSource = [photoTitles objectAtIndex:indexPath.row];

    dettaglioImmagine.imageCoverSource = [photoURLsLargeImage objectAtIndex:indexPath.row];
    NSLog(@"imageCoverSource: %@", …
Run Code Online (Sandbox Code Playgroud)

objective-c iphone-vibrate vibration ios

1
推荐指数
1
解决办法
1384
查看次数

SwiftUI:如何让手机振动?

所以我通过这个教程了解了如何让手机给出触觉反馈。 https://swifttom.com/2020/03/11/haptic-feedback-in-a-swiftui-button/

然而,我想要弄清楚的是如何让 iPhone 真正振动,就像接到电话时发生的振动或计时器(来自默认时钟应用程序)在手机静音时关闭时发生的振动一样。我知道这似乎我可以在谷歌上轻松找到答案,但老实说我找不到解决方案。如果有人可以提供帮助,我将不胜感激。

import SwiftUI

struct ContentView: View {
    let generator = UINotificationFeedbackGenerator()
    var body: some View {
        VStack{
            Button("Press") {
                generator.notificationOccurred(.error) //I want vibration, not haptic feedback
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

iphone-vibrate swift swiftui

1
推荐指数
1
解决办法
3036
查看次数