在watch-os-3上录制音频时出错

时间:2016-09-22 10:15:04

标签: avfoundation swift3 xcode8 watchconnectivity watch-os-3

我想在Applewatch上录制我的音频并发送到我的iPhone。 我创建了一个存储文件的URL,每次我在我的模拟器上尝试它时它工作正常但在真实设备上没有发生此错误

  

错误:错误Domain = com.apple.watchkit.errors Code = 3“(null)”

URL:

var dir = fileManager.containerURL(forSecurityApplicationGroupIdentifier: "group.com.companyname.projektname")

RECORD:

presentAudioRecorderController(withOutputURL: dir,preset:.narrowBandSpeech,
                                                            options: nil,
                                                            completion:.........

2 个答案:

答案 0 :(得分:1)

在WatchOS 3上,您还需要在iOS应用程序的info.plist文件中添加“隐私 - 麦克风使用说明”条目(而不是WatchKit应用程序)。然后在iPhone上你必须同意使用麦克风。

我在这里找到了这个:https://forums.developer.apple.com/thread/62612

答案 1 :(得分:0)

请尝试以下代码:

定义网址

var saveUrl: NSURL?

let container = 
    fileManager.containerURLForSecurityApplicationGroupIdentifier(
        "group.com.companyname.projektname")

let fileName = "audioFile.wav"

saveUrl = container?.URLByAppendingPathComponent(fileName)

录制代码:

let duration = NSTimeInterval(10)

let recordOptions = 
         [WKAudioRecorderControllerOptionsMaximumDurationKey : duration]

presentAudioRecorderControllerWithOutputURL(saveUrl!, 
         preset: .NarrowBandSpeech,
         options: recordOptions, 
         completion: { saved, error in

            if let err = error {
                print(err.description)
            }

            if saved {
                self.playButton.setEnabled(true)
            }
      })

希望这会对你有帮助......