Подтвердить что ты не робот

Доступ к микрофону Apple Watch

Теперь, когда все больше и больше документов на Apple Watch всплывают, кто-нибудь нашел способ доступа и использования микрофона устройства?

4b9b3361

Ответ 1

Вы можете получить доступ к микрофону "Watch Watch" на watchOS 2.

1) Создайте URL-адрес файла для хранения записанного вывода.

NSArray *filePaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                         NSUserDomainMask,YES);
NSString *path = [[filePaths firstObject] stringByAppendingPathComponent:@"rec.m4a"];
NSURL *fileUrl = [NSURL fileURLWithPath:path];

Вы можете указать расширения .wav,.mp4 и .m4a.

2) Вызвать метод следующим образом:

[self presentAudioRecordingControllerWithOutputURL:fileUrl
                                            preset:WKAudioRecordingPresetWideBandSpeech
                                   maximumDuration:5.0
                                       actionTitle:@"Some Title"
                                        completion:^(BOOL didSave, NSError * __nullable error) {

                                            NSLog(@"didSave:%d, error:%@", didSave, error);
                                        }];

Вы можете выбрать предустановку в дополнение к приведенному выше

  • WKAudioRecordingPresetNarrowBandSpeech
  • WKAudioRecordingPresetHighQualityAudio

В Swift:

self.presentAudioRecordingControllerWithOutputURL(
    self.recFileURL(),
    preset: WKAudioRecordingPreset.WideBandSpeech,
    maximumDuration: 5.0,
    actionTitle: "SomeTitle") { (didSave, error) -> Void in

        print("didSave:\(didSave), error:\(error)")
}

Вы можете воспроизвести записанный файл следующим образом:

self.presentMediaPlayerControllerWithURL(
    fileURL,
    options: nil) { (didPlayToEnd, endTime, error) -> Void in

        print("didPlayToEnd:\(didPlayToEnd), endTime:\(endTime), error:\(error)")
}

Вы можете проверить спецификацию детали здесь.

Ответ 2

Я не мог найти конкретного упоминания об этом в официальной документации, но на Форумы разработчиков слово из модов заключается в том, что оно не является" t в настоящее время возможно.

В настоящее время WatchKit не предоставляет доступ к микрофону часов. Однако у вас есть доступ к микрофону iPhone из расширения WatchKit.

Ответ 3

Если вы ищете диктовку, вот некоторые ранние выводы по SDK: http://natashatherobot.com/watchkit-text-input-dictation-api/

Очевидно, не может быть протестирован до тех пор, пока аппаратное обеспечение не будет: D

Ответ 4

Я думаю, что есть хорошие новости от WWDC 2015 и новая бета-версия watchOS 2:

WWDC watchOS

К сожалению, на данный момент в документации отмечается аудио.

Ответ 5

Да, он представлен в Watch OS 2.

Но, как упоминалось Apple, эта часть API находится в предварительном просмотре, и это сильно изменилось. Что касается Watch OS 2 beta 5, соответствующий интерфейс (в Swift) изменился на:

@доступный (watchOS 2.0, *)

public func presentAudioRecorderControllerWithOutputURL (URL: NSURL, пресет: WKAudioRecorderPreset, опции: [NSObject: AnyObject]?, завершение: (Bool, NSError?) → Пустота)

Поэтому, пожалуйста, всегда обращайтесь к документу SDK, который вы используете, если вы хотите попробовать эту новую функцию.

Кстати, этот примерный проект был бы хорошим началом:

https://github.com/shu223/watchOS-2-Sampler

Тем не менее, некоторые из API, используемые в образце, уже изменены, как и эта запись.

Ответ 6

Это внутри действия от кнопки, ранее добавленной в интерфейсную панель, также не забудьте добавить строку "Конфиденциальность - описание использования микрофона" в info.plist.

@IBAction func btnActionRecord() {
    var filePath: NSURL!
    if let dir: NSString = NSSearchPathForDirectoriesInDomains(.documentDirectory, .allDomainsMask, true).first as NSString? {
        let path = dir.appendingPathComponent("myRecord.wav")
        filePath = NSURL(string: path)
        let audioOptions = [
            WKAudioRecorderControllerOptionsActionTitleKey: "Save",
            WKAudioRecorderControllerOptionsAlwaysShowActionTitleKey: true,
            WKAudioRecorderControllerOptionsAutorecordKey: true,
            WKAudioRecorderControllerOptionsMaximumDurationKey: 5.0] as [String : Any]

        presentAudioRecorderController(withOutputURL: filePath! as URL, preset: .highQualityAudio, options: audioOptions, completion: {
            (didSave, error)  -> Void in
            if didSave {
                print("Audio saved")
                let options = [WKMediaPlayerControllerOptionsAutoplayKey: true]
                self.presentMediaPlayerController(with: self.filePath as URL, options: options) {
                (didPlayToEnd, endTime, error) -> Void in
                    if didPlayToEnd {
                        print("Audio finished")
                    }
                    if error != nil {
                        print(error!.self)
                        }
                }
            }
            if error != nil {
                    print(error!.localizedDescription)
            }
        })
    }

}