UITableViewCell
の中でAVPlayer
を正常に使用する方法を工夫しています。この作品UITableViewCellでAVPlayerを処理する方法は?
let videoPlayer = AVPlayer(playerItem: AVPlayerItem(asset: cellVideo))
cell.playerView.player = videoPlayer
:私は次のコードを使用して-cellForRowAtIndexPath:
にplayer
を設定
class PlayerView: UIView {
var player: AVPlayer? {
get {
return playerLayer.player
}
set {
playerLayer.player = newValue
}
}
var playerLayer: AVPlayerLayer {
return layer as! AVPlayerLayer
}
override class var layerClass : AnyClass {
return AVPlayerLayer.self
}
}
:私のUITableViewCell
内部私は(アップルによって与えられた)、このコードを使用して、その中にAVPlayerLayer
を持ってUIView
サブクラスを持っていますしかし、セルが見えないときは、ビデオを再生したくありません。 player
をnilに設定してから、セルが再び表示されたら、player
を再度設定するか、ビデオを一時停止する必要がありますか?それとも、別の方法で使用するべきですか?ときに呼び出され、私は個人的にcellForRowAt indexPath
ので、nilにプレーヤーをビデオを停止し、設定したい
optional func tableView(_ tableView: UITableView,
didEndDisplaying cell: UITableViewCell,
forRowAt indexPath: IndexPath) {
}
:
YesにUITableViewCellのをキャストすることを確認したが、私は、この関数でやるべきものを求めていますか? – Tometoyou
cellForRowAt indexPathでビューをどのように設定しますか? – Jeremy
コードで質問を更新しました。 – Tometoyou