Как использовать takePicture () при получении сигнала LE bluetooth (приложение для селфи-флешки) - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь создать приложение, которое делает фотографию с помощью функции takePicture () из UIImagepickerController () каждый раз, когда я получаю сигнал LE Bluetooth как удаленный селфи-стик.

Я запрограммировал CoreBluetooh в AppDelegateкоторый работает нормально, и я могу получить строку типа сигнала Bluetooth "c" несколько раз без проблем, независимо от того, какой вид я нахожусь в приложении.

Затем я создал ViewController с вызовом кнопки "CameraButton" для того, чтобычтобы открыть камеру следующим образом:

@IBAction func CameraButton(_ sender: UIButton) {


    ImagePicker.delegate  = self
    ImagePicker.sourceType = .camera
    ImagePicker.showsCameraControls = false
    self.present(ImagePicker, animated: true, completion: nil)       
}

Эта кнопка работает нормально и открывает камеру, но мне не удается отправить команду ImagePicker.takePicture () из AppDelegate каждый раз, когда я получаю "c"Bluetooth не проблема, так как я печатаю «Значение Bluetooth отправлено».

func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {

    let stringValue = String(data: characteristic.value!, encoding: String.Encoding.utf8)!

    if (stringValue == "c") {

          print("bluetooth value sent")

            ImagePicker.takePicture()

            }
        }

До сих пор мне удалось создать картинку, объявив логическое значение внутри периферийного устройства func, а затем функцию ImagePicker.takePicture ().перемещается в код кнопки с помощью оператора if ().Но это просто делает ОДНУ картинку, и я хочу, чтобы она могла продолжать делать снимки.Что вы рекомендуете мне делать?Мои идеи - либо переместить ImagePicker.takePicture () на периферийное устройство func, как объяснено, либо сделать оператор while () внутри кнопки, которая мешает Bluetooth работать в фоновом режиме ...

Спасибо!

...