如何在小视频源码里实现边下边播

最近正在搞几个音视频相关的开源项目,后面会持续更新,简单介绍一下:

MediaSDK

https://github.com/JeffMony/MediaSDK
这是一个专注音视频边下边播的库,目前已经完全开源
主要的功能如下:

  • 实现HLS-M3U8视频的边下边播功能;
  • 实现其他非M3U8视频的边下边播功能
  • 实现视频缓LRU清理功能
  • 实现本地代理功能,有baseProxyServer和androidasync两种实现方式
  • 实现ijkplayer 和 exoplayer播放库

下面是架构图

 

如何在小视频源码里实现边下边播_第1张图片

 

 

示意图如下:

如何在小视频源码里实现边下边播_第2张图片

如何在小视频源码里实现边下边播_第3张图片

下面是接入方式:

 

allprojects {
  repositories {
    ...
    maven { url 'https://jitpack.io' }
  }
}

dependencies {
        implementation 'com.github.JeffMony:MediaSDK:2.0.0'
}

具体的接入方式见github

VideoDownloader

https://github.com/JeffMony/VideoDownloader
这是一个专注音视频下载的sdk,主要功能如下:

  • 下载整视频,如mp4/mkv/mov/3gp等视频
  • 下载HLS,即M3U8视频
  • M3U8 视频下载完成,会生成一个本地的local.m3u8文件
  • 视频下载完成,可以点击播放视频文件
  • 视频下载数据库记录视频下载信息
  • 增加视频下载队列

示意图如下:

 

如何在小视频源码里实现边下边播_第4张图片

如何在小视频源码里实现边下边播_第5张图片

如何在小视频源码里实现边下边播_第6张图片

下面是接入方式:

 

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

dependencies {
    implementation 'com.github.JeffMony:VideoDownloader:3.0.0'
}

具体的接入方式见github

PlayerSDK

https://github.com/JeffMony/PlayerSDK
这是一个专注音视频播放器的库,目前还在不断优化中,主要功能如下:

  • 支持ijkplayer 和 exoplayer 两种播放器
  • 支持进度条和seek功能
  • 支持二维码扫描网址功能
  • 支持循环播放的功能
  • 支持倍速的功能
  • 支持针对HLS Master视频的切换清晰度功能

示意图如下:

 

如何在小视频源码里实现边下边播_第7张图片

如何在小视频源码里实现边下边播_第8张图片

如何在小视频源码里实现边下边播_第9张图片

下面是接入方式:

 

repositories {
    maven { url 'https://jitpack.io' }
}

implementation 'com.github.JeffMony:PlayerSDK:2.0.0'

具体的接入方式见github

小结

目前还在不断优化中
原文链接:https://www.jianshu.com/p/7170a9d86a3d
 

你可能感兴趣的:(小视频源码)