Swift Playground中的AVAudioFile导致"错误-54"

时间:2015-05-11 23:13:24

标签: swift core-audio swift-playground avaudiofile

我决定在Swift Playground玩AVAudioPlayer。以下代码在正常的Swift项目中工作正常,但在Playground(在助理编辑器中)运行时返回以下错误:

  

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

以下是代码:

import Cocoa
import AVFoundation

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

打印出错误附带:

  

错误Domain = com.apple.coreaudio.avfaudio Code = -54"操作   无法完成。 (com.apple.coreaudio.avfaudio错误-54。)"   UserInfo = 0x7fa8c0736f70 {失败   call = ExtAudioFileOpenURL((CFURLRef)fileURL,& _extAudioFile)}

无法弄清楚为什么它只是Playground中的一个错误。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

Xcode 6

  1. 在Finder中打开Playground ("显示包内容")
  2. 创建一个"资源"文件夹里面
  3. 将文件添加到文件夹
  4. 退出并重新启动Playground
  5. 使用文件:

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

    Xcode 7

    不再需要解决方法了。

    打开Playground的项目导航器( CMD + 1 )然后拖动&将您的文件放入现有的"资源"文件夹中。

    使用文件:

    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)
    }