Swift Playground 中的 AVAudioFile 结果 "error -54"

AVAudioFile in Swift Playground results in "error -54"

我决定在 Swift 游乐场玩 AVAudioPlayer。以下代码在正常的 Swift 项目中工作正常,但 returns 在 Playground(在辅助编辑器中)中 运行 时出现以下错误:

2015-05-12 00:08:04.374 AVAudioFile[2481:141158] 00:08:04.374 ERROR: AVAudioFile.mm:266: AVAudioFileImpl: error -54

代码如下:

import Cocoa
import AVFoundation

var audioFileURL = NSURL(fileURLWithPath: "/Users/scooby/Desktop/song.wav")
var error: NSError?
var audioFile = AVAudioFile(forReading: audioFileURL, error: &error)

打印错误附带:

Error Domain=com.apple.coreaudio.avfaudio Code=-54 "The operation couldn’t be completed. (com.apple.coreaudio.avfaudio error -54.)" UserInfo=0x7fa8c0736f70 {failed call=ExtAudioFileOpenURL((CFURLRef)fileURL, &_extAudioFile)}

只是想不通为什么它只是 Playground 中的一个错误。有什么想法吗?

谢谢!

Xcode 6

  1. 在 Finder中打开 Playground ("Show package contents")
  2. 中创建一个 "Resources" 文件夹
  3. 将您的文件添加到文件夹
  4. 退出并重新启动 Playground

要使用文件:

let audioFileURL = NSBundle.mainBundle().URLForResource("myFile", withExtension: "wav")
var error: NSError?
let audioFile = AVAudioFile(forReading: audioFileURL, error: &error)

Xcode 7

不再需要解决方法。

打开 Playground 的项目导航器 (CMD+1),然后将您的文件拖放到现有的 "Resources" 文件夹中。

要使用文件:

do {
    if let audioFileURL = NSBundle.mainBundle().URLForResource("myFile", withExtension: "wav") {
        let audioFile = try AVAudioFile(forReading: audioFileURL)
        // use audioFile here
    }
} catch let error as NSError {
    print(error.localizedDescription)
}