关于videoview播放 m3u8视频 的缓存问题

最近用videoview播放m3u8在线直播视频,当把流服务器关闭后, 再重新打开播放器;播放器又重复服务器关闭前的那十多秒的视频 。在网上看了一下说m3u8格式是一段的一段的缓存并播放 ,我就想如何在关闭播放器把缓存清除了 求大神指点

VideoView播放m3u8视频时,如果网络不稳定或速度慢,可能会出现卡顿或视频无法播放的情况,这时可以考虑使用缓存来优化播放效果。

一般来说,有两种方式可以实现缓存:

1.利用HttpURLConnection类或OkHttp等网络框架读取m3u8文件内容并缓存到本地,然后在VideoView中设置本地视频路径进行播放。

这种方式的实现难度较高,需要考虑m3u8的分段加载、解密和合并等问题,且对网络框架的熟练度要求较高。但是可以确保播放流畅,卡顿概率小。

2.使用第三方库或工具,例如ExoPlayer或HlsDownloader,实现m3u8视频的缓存和播放。

ExoPlayer是Android开源的用于播放音频和视频的库,支持大部分视频格式和网络传输协议,包括m3u8。它可以自动分段、缓存、解密和合并,无需开发者另外实现。只需要在代码中调用几个简单的API,就可以实现m3u8视频的缓存和播放,且ExoPlayer支持自定义配置,可以根据具体需求进行调整。

HlsDownloader是一个简单的命令行工具,可以将m3u8视频缓存到本地,然后在VideoView中播放。它并不支持自动分段、解密和合并,需要开发者手动实现。但是利用HlsDownloader实现m3u8视频缓存的优点是代码简单,易于使用,适合于小型应用。

总之,通过以上两种方式,都可以实现m3u8视频的缓存和播放。选择哪种方式,需要根据具体需求和项目情况进行考虑。