2

Xcode 7 のアセット カタログから jpg/png 以外のファイルを取得したいのですが、アセット カタログにあらゆる種類のデータを追加できるようになりました。

したがって、私が行っていた方法は、GIF/ビデオを Xcode プロジェクトからアセット カタログに移動する前に機能していました。

private struct WalkthroughVideo {
    static let name = "tokyo"
    static let type = "mp4"
  }

private var moviePlayer : AVPlayerViewController? = {
    guard let path = NSBundle.mainBundle().pathForResource(WalkthroughVideo.name, ofType: WalkthroughVideo.type) else {
      return nil
    }
    let url = NSURL.fileURLWithPath(path)
    let playerViewController = AVPlayerViewController()
    playerViewController.player = AVPlayer(URL: url)
    return playerViewController
   }()

だから今パスはゼロです。ファイルが見つかりません。データセットを取得する新しい方法はありますか?

4

1 に答える 1

4

pathForResourceリソースがアプリ バンドルになくなり、アセット カタログにあるため、明らかに機能しません。実際には、もはや「パス」はありません。

アセット カタログから任意のデータを名前でフェッチできる新しい NSDataAsset クラスを使用する必要があります。tokyo.mp4の例をシミュレートするために、テーマ(ユニバーサル スロット内)というデータ セットとしてアセット カタログに保存されている AIFF サウンド ファイルを使用しました。これが私の完全なテストコードです(私のルートView Controllerにあります):

var player : AVAudioPlayer!
override func viewDidLoad() {
    super.viewDidLoad()
    if let asset = NSDataAsset(name: "theme") {
        let data = asset.data
        self.player = try! AVAudioPlayer(data:data)
        self.player.play()
    }
}

見よ、音が鳴った!もちろん、実際にはエラー処理を追加していたでしょうtry

于 2015-06-14T17:13:57.787 に答える