美文网首页
视频列表的视频播放

视频列表的视频播放

作者: 古月思吉 | 来源:发表于2019-01-08 14:53 被阅读0次

视频播放常见的场景:
(1)单个页面播放视频,即视频详情页
(2)视频列表上播放视频
其中(1)的实现方式相对简单,自定义UI,管理播放器的创建与释放即可;
但是(2)的实现就比较复杂了,是在每个cell上创建播放器,还是只在vc中创建一个播放器?当cell滑出屏幕的时候需要暂停播放,这个怎么实现?...
这里的解决思路参照了 JPVideoPlayer 的实现方案:

A、播放器仍是在cell中创建,因为cell的复用,播放器不会不停的创建与释放,所以并不会造成内存紧张。需要注意的是,在cell的deinit方法中需要销毁播放器。
B、在vc中需要定位当前正在播放视频的cell(playingVideoCell);在cell滑出屏幕的时候暂停播放;点击另一个cell的时候需要切换播放;vc消失的时候暂停当前播放的视频。

代码:

1.记录正在播放视频的cell

var playingVideoCell:HomePageDynamicMainCell?

2.cell滑出屏幕的时候暂停播放

func tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        guard self.playingVideoCell != nil else {
            return
        }
        if cell.hash == self.playingVideoCell?.hash {//找到正在播放视频的cell
            self.playingVideoCell?.infoView.destoryVideoPlay()
            self.playingVideoCell = nil
        }
    }

3.点击播放某个cell中的视频的时候,暂停播放上一个视频

  • 这里是通过代理实现的,也可以通过block等常用方式
//设置代理
cell.delegate = self

//MARK: - HomePageDynamicMainCellDelegate
extension AttentionMainPageController:HomePageDynamicMainCellDelegate {
    
    func didClickVideoPlayBtn(cell: HomePageDynamicMainCell) {
        if self.playingVideoCell?.hash != cell.hash {//播放另一个视频
            self.playingVideoCell?.infoView.destoryVideoPlay()
            self.playingVideoCell = cell
        }
    }
    
}

4.vc消失的时候暂停播放

override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        
        if self.playingVideoCell != nil {
            self.playingVideoCell?.infoView.pausePlayVideo()
        }
    }

参考文章:
https://www.jianshu.com/p/c73082c60f5b
https://www.jianshu.com/p/2c12c0cd9cde

相关文章

  • 视频列表的视频播放

    视频播放常见的场景:(1)单个页面播放视频,即视频详情页(2)视频列表上播放视频其中(1)的实现方式相对简单,自定...

  • RecyclerView中播放视频

    在很多播放视频的APP中都有在列表中播放视频的效果,当点击播放的时候,在列表中播放,当视频列表滑动出屏幕的时候,就...

  • iOS视频播放:预览播放视频前面N秒的设计

    一、需求 1、视频播放列表中,对于曝光的视频,需要播放视频前面N秒; 2、如果同时曝光多个视频,则视频循环播放视频...

  • 视频播放器

    系统播放器 打开视频列表 调用系统播放器播放视频 调用系统播放器播放网络视频 VideoView播放器 调用 V...

  • Android动态小视频设计

    一.动态流中的视频播放 1.列表中视频播放的控件实现 Android原生提供的视频播放空间VideoView ,继...

  • 视频列表播放问题

    mpvue视频列表播放,播放一个其他暂停方法,上代码 wx.createVideoContext(videoId,...

  • Flutter视频滚动播放怎么解决?看这个方案,神了!

    如题,本文分享的内容为:视频列表滚动播放。 分类 视频列表的播放规则一般需要和具体产品、交互确认,播放一般都是静音...

  • iOS端 视频播放 AVAudioSession设置

    视频播放里有很多场景。当我们的视频播放需要支持列表里静音播放,并且不打断外部音频播放。点击进入视频详情有声音,并且...

  • 基于Vue插入视频的2种方法

    方法一:iframe插入视频链接 1.1 ##### 当前播放的视频 1.2#####视频列表 1.3#####定...

  • video标签在某些安卓机上会自动全屏播放

    在项目中,需要在视频列表中,直接在列表内播放对应视频(内联播放),而有些安卓机型则会在点击播放按钮后,弹出全屏播放...

网友评论

      本文标题:视频列表的视频播放

      本文链接:https://www.haomeiwen.com/subject/vmnvrqtx.html