GithubHelp home page GithubHelp logo

wshichang / xl_player Goto Github PK

View Code? Open in Web Editor NEW

This project forked from xl-player-developers/xl_player

0.0 2.0 0.0 75.55 MB

A high performance Android media player, base on ffmpeg and MediaCodec, support VR video.

CMake 0.45% Java 10.43% C 85.93% Objective-C 0.06% C++ 3.13%

xl_player's Introduction

XLPlayer

last version

iOS播放器SGPlayer传送门

功能介绍

  • XLPlayer除解封装(ffmpeg)和陀螺仪数据滤波(HeadTrecker)其他部分均使用Android原生api
  • 默认情况下使用MediaCodec(Android 硬解)->SurfaceTexture->OpenGL ES工作模式,性能优异,小米3也可以轻松播放4K VR视频
  • 支持各种流媒体和本地视频播放
  • 支持几乎所有的媒体封装格式,包括但不限于.mp4 .mkv .flv rtmp hls .webm .mov等
  • 支持音/视频播放,暂停,停止,seek,获取总时长,已播时长等播放器常用功能
  • H263/H264/H265/MPEG4/VP8/VP9 支持硬件加速(部分设备不支持H265 VP9)
  • 支持音频自适应最佳采样率播放
  • 支持音视频变速(0.5 - 2.0)不变调播放
  • 支持VR视频播放,VR视频模式动态切换(球模式、盒子模式、小行星模式、 建筑学模式、展开模式)
  • 球模式、盒子模式、建筑学模式支持陀螺仪控制
  • 盒子模式带有透镜畸变和色散的补偿
  • 支持播放时动态切换surface
  • 支持动态切换画面方向
  • 支持后台播放
  • 支持获取已缓存时长,当前帧率,当前下载速度
  • 支持视频本身自带rotation的旋转
  • 支持强制软解(默认自适应)
  • 支持列表播放
  • 支持设置缓存时长和大小

使用说明

如果直接clone and run项目的话,建议先修改gradle/wrapper/gradle-wrapper.properties的 distributionUrl 和 project的build.gradle的classpath,否则可能会需要升级AndroidStudio的版本才能运行项目.

我们的播放器库支持minSdkVersion 16+, 不过我们建议使用minSdkVersion >= 21. 原因是当minSdkVersion >= 21 时, 硬件解码器会使用Android Native层接口: AMediaCodec, 否则需要通过反射使用java层接口Mediaodec,效率略低.

在module下的build.gradle添加

compile 'com.xl.media.library:xl-player-java:<LAST-VERSION>'//必须

//适配minsdkversion >= 16
compile 'com.xl.media.library:xl-player-armeabi:<LAST-VERSION>'
compile 'com.xl.media.library:xl-player-armv7a:<LAST-VERSION>'
compile 'com.xl.media.library:xl-player-arm64v8a:<LAST-VERSION>'

//适配minsdkversion >= 21 的版本,与>=16版本冲突
//compile 'com.xl.media.library:xl-player-armeabi-21:<LAST-VERSION>'
//compile 'com.xl.media.library:xl-player-armv7a-21:<LAST-VERSION>'
//compile 'com.xl.media.library:xl-player-arm64v8a-21:<LAST-VERSION>'

建议三个abi版本的库都添加,以提高app性能. 如果为了app包大小考虑,可只添加:

compile 'com.xl.media.library:xl-player-java:<LAST-VERSION>'
compile 'com.xl.media.library:xl-player-armeabi:<LAST-VERSION>'

有时候第三方的sdk并没有提供armeabi版本的sdk,只提供了armv7a的sdk,则需要替换为

compile 'com.xl.media.library:xl-player-java:<LAST-VERSION>'
compile 'com.xl.media.library:xl-player-armv7a:<LAST-VERSION>'

以防止app报找不到第三方sdk.so的错误.

Demo说明

SimpleDemoActivity 一个最基础的播放器使用页面

SinglePlayerActivity 播放音/视频的主要界面,里面涉及了大部分播放器的使用逻辑

SampleVideoActivity 一个简单的Demo视频列表

MultiPlayerActivity 列表形式的播放器页面

ChooseFileActivity 文件选择页面,可以选择本地音视频文件进行播放

YoutubeLikeActivity 类似youtube的播放页面

WhackAMoleActivity 打地鼠(播放中无缝切换Surface)页面

例图

图片1

图片2

图片3

图片4

图片5

图片6

联系方式:

交流QQ群     550224107

瘦子 QQ:372127449

晓龙同学 QQ:371575229

xl_player's People

Contributors

gutou121 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.