Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 575|回复: 0

基于 VLC 的 Android 多媒体解决方案

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-4-22 16:22:21 | 显示全部楼层 |阅读模式

    前段时间项目中需要在 Android 中播放视频、流媒体、查看监控,就研究了一下 Android 多媒体解决方案。

    查找了一下,大致有如下几种:

    1. Android MediaPlayer
    2. FFmpeg
    3. Google ExoPlayer
    4. Vitamio
    5. VLC

     

    Android MediaPlayer 是 Android 内置的播放器,支持格式很有限:3gp mp4,且不支持流媒体。

    FFmpeg 是一套功能强大的跨平台多媒体解决方案,需要用NDK编译,支持海量格式、流媒体。

    Google ExoPlayer 是一个Google在2014年才推出的介于现有MediaPlayer和自定义媒体播放器之间的预建播放器,要求 Android 4.1+,支持多种格式、DASH(Dynamic Adaptive Streaming over HTTP),易于扩展。

    Vitamio 是国人开发的一个流行的第三方多媒体库,支持 Android、iOS,最新版商业使用需要授权。

    VLC是另一个功能强大的跨平台多媒体解决方案,支持海量格式、流媒体,集成了FFmpeg的部分功能,官方支持Android平台。

    本文将使用VLC在Android中播放视频,最终效果如下:

     

    1、编译VLC Android

    VLC 官方 git 仓库:http://git.videolan.org/

    VLC Android 官方 git 仓库:https://code.videolan.org/videolan/vlc-android

    VLC Android 官方编译说明:https://wiki.videolan.org/AndroidCompile

    VLC Android比较难得的是提供了Android原生aar包,项目里可以直接引用。按照上述说明即可编译出对应架构(ARM、x86、MIPS等)的aar包。

    我这里编译好了一份 ARMv7 的aar 包,可以在这里下载。

    项目源码已托管在Github:https://github.com/mymbrooks/VLCAndroidDemo

     

    2、新建一个Android项目,把aar包复制到app/libs目录下:

     

    3、修改 app/build.gradle,添加:

     

    4、创建第一个界面,支持播放本地和远程视频:

     

    5、为了兼容 Android 6.0 + ,播放本地视频时需要先请求读取SD卡的权限:

     

    6、使用了一个第三方的方法方便获取Android 4.4及以上的真实视频路径:

     

    7、创建 VLC 播放器界面,使用SurfaceView显示视频,支持进度条、音量控制,暂停、继续,全屏显示:

     

    8、播放进度控制:

     

    9、获取视频长度等信息:

     

    10、播放过程中更新时间进度:

     

    11、将播放时间进度格式化为:hh:mm:ss

     

    12、播放本地和远程视频时使用的方法不同:

     

    VLC Android 提供的功能很丰富,如需要其他高级功能,请参考官方App源码。

    此外,VLC Android 还提供了一个原生控件,具体用法可自行尝试:

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-1-12 16:18 , Processed in 0.059230 second(s), 28 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表