Photos Framework: Verbindung zu assetsd wurde unterbrochen oder assetsd ist gestorben
Ich erhalte diese Fehlermeldung, wenn ich versuche, mit dieser schnellen Bibliothek mehrere Videos abzuspielen https: //github.com/piemonte/playe). Ich bin mir nicht sicher, ob es mit diesem Player oder dem Photos-Framework zu tun hat oder was.
Was passiert ist, ich habe eine Ansicht, die entweder ein Foto oder ein Video anzeigt. Alles funktioniert ein paar Mal, bis ein paar Videos abgespielt wurden, und dann wird diese Meldung eingeblendet, gefolgt von allen Videos, die nicht abgespielt werden können. Stattdessen wird nur ein schwarzer Bildschirm angezeigt, und dann wird ein Fehler bei der Speichernutzung angezeigt.
Ich verwende eine Bibliothek namens SwipeView und hier ist ein relevanter Code, der hilfreich sein kann.
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()
}
Irgendwelche Gedanken wären toll.