この迅速なライブラリ(https://github.com/piemonte/player)を使用して複数の動画を再生しようとすると、このエラーが発生します。そのプレイヤーやPhotosフレームワークに関係があるかどうかは分かりません。何が起こる写真のフレームワーク:assetsdへの接続が中断された、または資産が死亡しました
は私が写真やビデオのいずれかを表示するビューを持っている、です。いくつかのビデオが再生されてからこのメッセージがポップアップ表示されるまで、すべてのビデオがうまく動作し、再生できないすべてのビデオが表示され、黒い画面が表示された後、メモリ使用エラーが発生します。私はここにSwipeViewと呼ばれるライブラリを使用しています
は役立つかもしれないいくつかの関連するコードです。
func swipeView(swipeView: SwipeView!, viewForItemAtIndex index: Int, reusingView view: UIView!) -> UIView! {
let asset: PHAsset = self.photosAsset[index] as PHAsset
// Create options for retrieving image (Degrades quality if using .Fast)
// let imageOptions = PHImageRequestOptions()
// imageOptions.resizeMode = PHImageRequestOptionsResizeMode.Fast
var imageView: UIImageView!
let screenSize: CGSize = UIScreen.mainScreen().bounds.size
let targetSize = CGSizeMake(screenSize.width, screenSize.height)
var options = PHImageRequestOptions()
options.resizeMode = PHImageRequestOptionsResizeMode.Exact
options.synchronous = true
if (asset.mediaType == PHAssetMediaType.Image) {
PHImageManager.defaultManager().requestImageForAsset(asset, targetSize: targetSize, contentMode: .AspectFill, options: options, resultHandler: {(result, info) in
if (result.size.width > 200) {
imageView = UIImageView(image: result)
}
})
return imageView
} else if (asset.mediaType == PHAssetMediaType.Video) {
self.currentlyPlaying = Player()
PHImageManager.defaultManager().requestAVAssetForVideo(asset, options: nil, resultHandler: {result, audio, info in
self.currentlyPlaying.delegate = self
self.currentlyPlaying.playbackLoops = true
self.addChildViewController(self.currentlyPlaying)
self.currentlyPlaying.didMoveToParentViewController(self)
var t = result as AVURLAsset
var url = t.valueForKey("URL") as NSURL
var urlString = url.absoluteString
self.currentlyPlaying.path = urlString
})
return self.currentlyPlaying.view
}
return UIView()
}
func swipeViewItemSize(swipeView: SwipeView!) -> CGSize {
return self.swipeView.bounds.size;
}
func swipeView(swipeView: SwipeView!, didSelectItemAtIndex index: Int) {
self.currentlyPlaying.playFromBeginning()
}
func swipeViewCurrentItemIndexDidChange(swipeView: SwipeView!) {
self.currentlyPlaying.stop()
}
どのような考えも大きいでしょう。ファイルの再生が終了したか、一人のプレイヤーこれを作成するためにした後、私はそれを削除するか、あなたをお勧めします
self.currentlyPlaying = Player()
:
は、新しい 'プレイヤーを()'作成し、子ビューコントローラとして追加します。あなたはそれが完了したらそれを削除しますか?それはメモリの問題を引き起こす可能性があります。 @BackWu。 – Jack
。ああ、それはおそらくそれです。私はそれを後で見てみましょう、ありがとう! – Jonovono