ios xcode swift uicollectionview avplayerviewcontroller

ios - AVPlayerViewController en el error UICollectionViewCell?



xcode swift (1)

En mi UICollectionView tengo una celda. Este es mi cellForItemAtIndexPath

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { var videoCell = collectionView.dequeueReusableCellWithReuseIdentifier("cellVideo", forIndexPath: indexPath) as? CollectionViewCell let post = self.arrayOfDetails[indexPath.row] var myUrl = post.image // post.image is image url let fileUrl = NSURL(string: post.image) aPlayer = AVPlayer(URL: fileUrl) moviePlayerController.player = aPlayer moviePlayerController.view.frame = CGRectMake(8, 8, videoCell!.frame.size.width-16, 310) moviePlayerController.videoGravity = AVLayerVideoGravityResizeAspectFill moviePlayerController.view.sizeToFit() moviePlayerController.showsPlaybackControls = true videoCell!.addSubview(moviePlayerController.view) return videoCell! }

El problema es que AVPlayerViewController no aparece en cada celda. Pero solo en la celda que está debajo de la que estoy mirando, así que si me desplazo hacia abajo en mi UICollectionView y aparece una nueva celda en la pantalla, el AVPlayerViewController está en esa celda y no en la celda en el centro de la pantalla. ¿Alguna sugerencia de lo que podría estar mal aquí?

Video aquí: https://vid.me/e/fU5X


Necesita un nuevo aPlayer y moviePlayerController para cada celda que tenga el video. Algo como esto debería hacerlo:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { var videoCell = collectionView.dequeueReusableCellWithReuseIdentifier("cellVideo", forIndexPath: indexPath) as? CollectionViewCell var aPlayer = AVPlayer() let moviePlayerController = AVPlayerViewController() let post = self.arrayOfDetails[indexPath.row] var myUrl = post.image // post.image is image url let fileUrl = NSURL(string: post.image) var aPlayer = AVPlayer() let moviePlayerController = AVPlayerViewController() aPlayer = AVPlayer(URL: fileUrl) moviePlayerController.player = aPlayer moviePlayerController.view.frame = CGRectMake(8, 8, videoCell!.frame.size.width-16, 310) moviePlayerController.videoGravity = AVLayerVideoGravityResizeAspectFill moviePlayerController.view.sizeToFit() moviePlayerController.showsPlaybackControls = true videoCell!.addSubview(moviePlayerController.view) return videoCell! }