2

Swift Playground で AVAudioPlayer を使って遊ぶことにしました。次のコードは、通常の Swift プロジェクトでは問題なく動作しますが、プレイグラウンド (アシスタント エディター) で実行すると次のエラーが返されます。

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)

エラー出力の出力には次のものがあります。

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

プレイグラウンドでのみエラーになる理由がわかりません。アイデアはありますか?

ありがとう!

4

1 に答える 1

3

Xコード6

  1. Finderで Playgroundを開きます (「パッケージの内容を表示」)。
  2. 中に「Resources」フォルダを作成する
  3. フォルダにファイルを追加します
  4. Playground を終了して再起動する

ファイルを使用するには:

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

Xコード7

もう回避策は必要ありません。

Playground の Project Navigator ( 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)
}
于 2015-05-12T09:54:19.127 に答える