3 回答
TA貢獻1853條經驗 獲得超18個贊
從“ iPhone教程:檢查iOS設備功能的更好方法 ”:
有兩個看似相似的函數接受一個參數kSystemSoundID_Vibrate:
1) AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);2) AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
這兩個功能都會震動iPhone。但是,當您在不支持振動的設備上使用第一個功能時,它會發出嗶聲。另一方面,第二個功能在不支持的設備上不執行任何操作。因此,如果您要持續振動設備,作為警報,常識說,請使用功能2。
首先,AudioToolbox.framework在Build Phases 中將AudioToolbox框架添加到目標。
然后,導入此頭文件:
#import <AudioToolbox/AudioServices.h>
TA貢獻1921條經驗 獲得超9個贊
Swift 2.0+
AudioToolbox現在將其顯示kSystemSoundID_Vibrate為SystemSoundID類型,因此代碼為:
import AudioToolbox.AudioServicesAudioServicesPlaySystemSound(kSystemSoundID_Vibrate)AudioServicesPlayAlertSound(kSystemSoundID_Vibrate)
而不是必須通過額外的演員步驟
(@Dov的道具)
原始答案(Swift 1.x)
而且,這是你如何在Swift上做的(如果你遇到了和我一樣的麻煩)
鏈接AudioToolbox.framework(轉到您的項目,選擇目標,構建階段,鏈接二進制文件庫,在那里添加庫)
完成后:
import AudioToolbox.AudioServices// Use either of theseAudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate))
俗氣的是,這SystemSoundID基本上是一個typealias(花哨的快速typedef)a UInt32,而且kSystemSoundID_Vibrate是一個常規的Int。編譯器給你一個錯誤,試圖從中轉換Int為UInt32,但錯誤讀作“無法轉換為SystemSoundID”,這是令人困惑的。為什么蘋果不能讓它成為Swift枚舉超出我的范圍。
@ aponomarenko's詳細介紹,我的答案僅適用于那里的Swifters。
- 3 回答
- 0 關注
- 863 瀏覽
添加回答
舉報
