1. 程式人生 > >iOS播放自定義提示音和震動

iOS播放自定義提示音和震動

@implementation LKVibrate{
    SystemSoundID soundID;
}

void soundCompleteCallback(SystemSoundID sound,void * clientData) {
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    AudioServicesPlaySystemSound(sound);
}
- (void) playVibration{
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}

- (void) stopVibration{
    AudioServicesDisposeSystemSoundID(kSystemSoundID_Vibrate);
}

- (void)playAlertSound{
    usleep(1000);
    NSString *soundFile = [[NSBundle mainBundle] pathForResource:@"doorbell.wav" ofType:nil];
    AudioServicesCreateSystemSoundID((__bridge CFURLRef) [NSURL fileURLWithPath:soundFile], &soundID);
    
    AudioServicesPlaySystemSound(soundID);
    AudioServicesAddSystemSoundCompletion(soundID, NULL, NULL, soundCompleteCallback, NULL);
}

-(void)stopAlertSound{
    AudioServicesDisposeSystemSoundID(soundID);
    AudioServicesRemoveSystemSoundCompletion(soundID);
}

+ (instancetype)shareLKVibrate{
    static id _instance;
    static dispatch_once_t _onceToken;
    dispatch_once(&_onceToken, ^{
        _instance = [[self alloc]init];
    });
    return _instance;
}

參考文章:帥氣的連結

AudioServicesPlaySystemSound屬性列表:帥氣的連結

相關推薦

iOS播放定義提示震動

@implementation LKVibrate{ SystemSoundID soundID; } void soundCompleteCallback(SystemSoundID so

iOS 友盟推送播放定義提示(小白必讀)

越來越多的APP開始使用自己的推送提示音,下面咱就來試試。侷限型:說到推送提示音,挺多的人都會想,在收到推送的時候播放一個音訊檔案不就OK啦。這種方法有個弊端,而且可以分為兩種情況1.APP處於前臺活躍狀態:系統推送預設的提示音和自己播放的音訊檔案都會響起2.APP處於後臺或

iOS-推送定義提示

無論是信鴿推送,還是極光推送,其實就是將蘋果原生的APS進行封裝。具體操作步驟在相應的官網上都有詳細介紹以及Demo。本文主要講述自定義聲音遇到的坑,以下是相關硬性條件: 1.音訊檔案格式: .aiff 、.wav 、.caf  ,下面的/System/Librar

極光推送JPush---定義提示

極光推送提供三種方法實現Notification通知 三方開發平臺傳送普通訊息,客戶端設定PushNotificationBuilder,實現基礎的Notification通知 三方開放平臺傳送普通訊息,客戶端設定CustomPushNotification

iOS 播放系統提示使用系統方法播放本地提示

1、iPhone系統音效 AudioServicesPlaySystemSound(1007);  //其中1007是系統聲音的編號,想用其他音效更改編號就可以了 2、使用者自己製作的提示音 //檔案路徑 NSString *path = [[NSBundle mainBundle] pathForReso

iOS開發-AFNetworking封裝Get(定義HTTP Header)Post請求及文件下載

謝謝 filepath pos cat style -type poe repo eth 前面提到AFNetworking是一個很強大的網絡三方庫,首先你需要引入AFNetworking三方庫;如封裝的有誤還請指出,謝謝! 1.Get請求 /**Get請求 url 服務器

(二十一)蜂鳴提示 手機震動

本節知識點 蜂鳴提示音 plus.device.beep(); 手機震動 plus.device.vibrate(); 蜂鳴提示音plus.device.beep() switch ( plus.os.name ) { //判斷裝置型別 case

iOS 定義提示

在專案的開發中經常需要用到一些提示框,提示使用者是否確定進行某項操作。雖然系統提供了一個UIAlter的控制元件供開發人員使用,但是系統自帶往往有侷限性,不能滿足需求了,很多時候需要自定義提示框。我寫了一個比較簡單的自定義提示框,當然可以根據自己實際的需求,在我

echarts定義legend圖例tooltip預設提示文字

1.legend圖例 先看效果圖: lengend中有一個屬性formatter,是圖例的形式,用來格式化圖例文字。 formatter有兩種形式:  - 模板  - 回撥函式 示例: // 使用字串模板,模板變數為圖例名稱 {name} formatter:

ThinkPHP中定義錯誤頁面提示頁面例項

本文例項講述了ThinkPHP中自定義錯誤頁面和提示頁面的方法。分享給大家供大家參考。具體實現方法如下:   在ThinkPHP中有兩個方法時提示錯誤頁面 _404('錯誤資訊','跳轉的地址');halt('提示資訊');   這兩個函式都可以自定義錯誤頁面在配置檔案中加

IOS 定義導航欄標籤欄

大多數ios應用都是以標籤欄加導航欄的形式呈現,一般根控制器都是UIToolbar,然後再以UINavigationController為子控制器,然後再加入UIViewController。為什麼要這樣?因為不同的標籤欄的項一般對應不同的功能,那麼導航欄的標題一般就不同。

iOS開發之UITableView定義Header檢視定義Footer檢視

//自定義Header檢視 - (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInte

iOS定義cell控制器之間常用傳值方式

自定義cell和控制器之間常用傳值方式 1.代理傳值(用的多) 在自定義cell的.h檔案中制定協議,例: @class OtherTableViewCell; @protocol OtherTableViewCellDelegate <NSObject&g

[Android] 仿IOS實現定義Dialog,底部彈窗中間彈窗工具

用過Android的預設對話方塊的都懂,不管是哪個版本的對話方塊,都醜到爆!就算是Google推崇的Material Design風格的彈窗一樣不好看,基本每款APP都不會去使用預設的對話方塊樣式,他們都有自己的風格,怎樣去改變預設的對話方塊樣式呢?只能自定義了,將系統對話方

定義服務 factory service

控制器 ctr div ava json對象 html src com 沒有 1、使用factory 方法 必須有返回值 即return ,factory只是調用普通的function,可以返回任何東西。 HTML 代碼 <body ng-app="myApp

php curl如何設置定義請求頭打印請求頭信息

設置 發出 cnblogs lose 請求 clas false 自定義 col $header = [ ‘client:h5‘, ‘token:test‘, ]; curlRequest($url, $params, true, 10, $header

ASP.NET MVC下定義錯誤頁展示錯誤頁的幾種方式

提供服務 one url attribute 運行 16px execute 釋放 namespace 在網站運行中,錯誤是不可避免的,錯誤頁的產生也是不可缺少的。 這幾天看了博友的很多文章,自己想總結下我從中學到的和實際中配置的。 首先,需要知道產生錯誤頁的來源,一種

定義事件.trigger().triggerHandler()

microsoft ati 普通 影響 submit 返回值 程序 sof efi 自定義事件.trigger()和.triggerHandler()1 .trigger()根據綁定到匹配元素的給定的事件類型執行所有的處理程序和行為,除了能夠觸發瀏覽器事件,

Django 【第十篇】定義驗證規則中間件

表達式 主動 mixin tex choice direct request lock test 一、Form基本使用 類 字段 is_valid() cleaned_data errors 字段參數: m

Confluence 6 升級定義的站點空間布局

功能 也會 隨著 for cti 修改 頁面 nal 需要 隨著 Confluence 的演變。默認的站點和空間布局也會隨著 Confluence 升級而讓使用的所有頁面進行改變。隨著一些新功能的加入和一些老功能的修改,默認的布局也需要進行修改來支持這些改變。 如