【发布时间】:2017-12-29 21:09:52
【问题描述】:
重复的答案根本没有工作
import Cocoa
import AVFoundation
var error: NSError?
println("Hello, Audio!")
var url = NSURL(fileURLWithPath: "/Users/somebody/myfile.mid") // Change to a local midi file
var midi = AVMIDIPlayer(contentsOfURL: url, soundBankURL: nil, error: &error)
if midi == nil {
if let e = error {
println("AVMIDIPlayer failed: " + e.localizedDescription)
}
}
midi.play(nil)
while midi.playing {
// Spin (yeah, that's bad!)
}
【问题讨论】:
-
Cocoa框架在您开发 macOS 应用程序时使用,并且在 iOS 平台上不存在,这就是您看到该错误的原因 :) 要修复它,请尝试将import Cocoa替换为import UIKit例如。也看到这个答案:stackoverflow.com/a/24099668/4063602希望有帮助 -
@pbodsk 即使在将 import Cocoa 替换为 import UIKit 之后,它也无法工作
-
好的。第一个很容易。而不是
println(),您只需写print(),例如print("Hello, Audio!")。至于AVMIDIPlayer错误。你还在导入AVFoundation吗?您需要导入bothUIKit和AVFoundation。 -
@pbodsk 是的,我正在导入 UIKit 和 AVFoundation
-
我现在在猜测,但是当您作为 iOS 操场运行时,您可能无法直接在操场上引用计算机上的文件 URL。试试看这个答案是否对你有帮助:stackoverflow.com/a/31500936/4063602