UIDocumentBrowserViewController経由で取得したオーディオファイルからAVAudioFileを生成する
オーディオファイルをMacや他のiOSアプリから自分のアプリに渡す場合、UIDocumentBrowserViewControllerが簡単で便利だが、
ここで選択したオーディオファイル(.m4aとか)のURLをUIDocumentBrowserViewControllerDelegateのdocumentBrowser(_:didPickDocumentURLs:)メソッドから取得して、
func documentBrowser(_ controller: UIDocumentBrowserViewController, didPickDocumentURLs documentURLs: [URL]) {
print("\(type(of: self))/\(#function)")
if let fileUrl = documentURLs.first {
...
}
}
そのURLオブジェクトを用いて次のようにAVAudioFileを生成しようとすると、何やらエラーになる。
let audioFile = try? AVAudioFile(forReading: fileUrl)
(ExtAudioFileOpenURL((CFURLRef)fileURL, &_extAudioFile)): error -54
ちなみにここからAVAudioPCMBufferを生成したい。
解決法
最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/