데이터베이스에서 데이터를 가져 오는 tableView가 있습니다. 내 TableView의 일부 셀에는 비디오가 포함되어 있으며 비디오를 보게되면 제대로 표시됩니다.사용자가 스크롤 할 때 비디오를 멈추는 방법
내 문제는 누군가 계속 스크롤하면 비디오가 계속 재생된다는 것입니다. 나는 그것을 바꾸고 싶습니다. 사용자가 비디오의 일부를 보았을 때 스크롤을 계속하면 비디오를 끝내고 싶습니다. 나는 그 문제를 해결하는 것에 가깝지만 아직 그 문제는 아니라고 생각한다.
이func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Home", for: indexPath) as! Home
let filename = streamsModel.video_image[indexPath.row] as NSString
if filename.pathExtension == "mov" {
let movieURL = URL(string: streamsModel.video_image[indexPath.row])
cell.videoCapHeight.constant = CGFloat(Float(cell.pic_height!))
cell.playerView = AVPlayer(url: movieURL!)
cell.MyAVPlayer.player = cell.playerView
cell.MyAVPlayer.showsPlaybackControls = false
cell.MyAVPlayer.view.frame = cell.videoView.bounds
cell.videoView.addSubview(cell.MyAVPlayer.view)
controller.addChildViewController(cell.MyAVPlayer)
cell.playerView?.isMuted = false
cell.MyAVPlayer.player?.play()
}
return cell
}
단순히 위의 그 코드는 streamsModel.video_image
는 확장명이 .mov (JSON)가 있는지 확인합니다 :
이
내 코드입니다. 그러면 동영상/비디오를 가져 와서 AVPlayer에 표시합니다.코드에서 알 수 있듯이 Play()
메서드가 사용되어 비디오가 자동으로 재생되기 시작합니다. 문제는 예를 들어, 동영상 길이가 1 분이고 동영상 길이가 20 초이고 아래로 스크롤하면 여전히 동영상이 재생된다는 소리를 듣고 사용자가 멀리 이동하면 즉시 동영상을 중단하고 싶다는 것입니다.
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if (self.lastContentOffset > scrollView.contentOffset.y + 0) {
print("scrolling up")
}
else if (self.lastContentOffset < scrollView.contentOffset.y) {
print("scrolling down")
}
self.lastContentOffset = scrollView.contentOffset.y
}
이
그래서 서로 옆에있는 두 셀이 동시에 비디오와 디스플레이를 가지고 있다면 자동으로 재생됩니다. 어떤 점에서 어떻게 작동 하는지를 고려하는 것이 좋습니다. – Wez
한 번에 하나의 비디오 만 시작됩니다. 세포는 충분히 커서 다른 내용물을 포함하고 있기 때문에 한 번에 1 개의 세포에만있을 수 있습니다. – user1591668
지금은 충분히 공정하지만 더 큰 기기에 표시되는 경우 어떻게해야합니까? - 사용자가 협상 한 것보다 더 많은 소음으로 포격을 받기 전에이를 고려하고 싶습니다. – Wez