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!
}