app在后台可以震动

  1. app开启后台运行权限,定位或者录音等都可以
  2. 设置AVAudioSession时,mode设置为voiceChat
  3. 手机震动调用
    AudioServicesPlaySystemSoundWithCompletion(kSystemSoundID_Vibrate, nil)
import UIKit
import AVFoundation

class ViewController: UIViewController {

    var recorder: AVAudioRecorder?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let session = AVAudioSession.sharedInstance()
        try? session.setCategory(.playAndRecord, mode: .voiceChat, options: [])
        try? session.setActive(true)
        
        /**
         AVAudioSession.category = playAndRecord
         mode = defualt, 震动不生效
         mode = voiceChat, 可以震动
         */
        let url = URL(fileURLWithPath: NSTemporaryDirectory().appending("/abc.caf"))
        recorder = try? AVAudioRecorder(url: url, settings: [:])
        recorder?.prepareToRecord()
        recorder?.record()
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        Timer.scheduledTimer(withTimeInterval: 3, repeats: true) { _ in
            AudioServicesPlaySystemSoundWithCompletion(1521, nil)
            //AudioServicesPlaySystemSoundWithCompletion(kSystemSoundID_Vibrate, nil)
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容