zoukankan      html  css  js  c++  java
  • android项目中使用VLC

    原文:https://blog.51cto.com/xphhhh/1565641

    VLC是pc时代流媒体播放器的标杆,相信大家都有接触。VLC的流媒体部分是基于开源的live555库。live555的代码我稍微看过一些,基于C++的,说实话,代码写的有点乱,不太符合一个开源库的档次。不过,live555的有点是兼容性相当的好,很多不是很标准的流媒体码流,都能适当兼容。也正因为此,VLC作为一款播放器,较受欢迎。

    最近我在开发一个android app,需要用到流媒体播放器,主要用于播放网络上的http流媒体和rtsp流媒体。当然,第一想法肯定是直接用android自带的mediaplayer(用的是封装后的videoview)。事实上,mediaplayer也相当不错,完美支持http。但是在支持rtsp上,不是很好,主要表现在缓冲时间较长,编程接口少,并且有些rtsp链接无法播放。

    于是开始关注第三方播放器,可选的是两个:一个是vlc,老牌播放器,兼容性好,口碑好,但是在android平台上刚移植出来,稳定性易用性什么的都没保障。还有一个是国人开源项目vitamio,它是专门针对android设计的,接口非常易用(直接封装成videoview了,并且接口基本与android自带的videoview一模一样,可以直接替代)。但是vitamio也存在与系统mediaplayer一样的问题,对于某些rtsp同样无法播放。所以我很怀疑vitamio不过是把android本身的mediaplayer和videoview拿出来自己做了一个开源项目。对于系统mediaplayer不满意的可以用vitamio,编程接口多,并且能避免不同机子对mediaplayer和videoview实现差异引起的兼容性问题。

    所以我就选了vlc。直接去vlc官网下载vlc for android,包括源码包和vlc apk。项目中使用的话,直接把源码中的LibVLC那个目录拖进自己的工程就好了。LibVLC java代码就是封装了C库jni接口,对外提供了一个LibVLC对象,初始化、播放、停止,这些接口是很明确的,直接拿来用就行了,我们只需要自己再封装一个videoview,把图像显示在view上就可以了。

    至于vlc依赖到的so库,其实很简单,不用按网上的去自己编译,直接把vlc app解压开来,把里面一共4个so拖到自己项目来就行了。呵呵呵,尼玛这是有多懒。

    补充vlc一个bug:对于http流媒体,调用stop接口会阻塞很长一段时间。具体原因未研究,最后在项目中我就一分为二了,对于http流媒体,仍使用系统自带videoview。

     
  • 相关阅读:
    反转链表 16
    CodeForces 701A Cards
    hdu 1087 Super Jumping! Jumping! Jumping!(动态规划)
    hdu 1241 Oil Deposits(水一发,自我的DFS)
    CodeForces 703B(容斥定理)
    poj 1067 取石子游戏(威佐夫博奕(Wythoff Game))
    ACM 马拦过河卒(动态规划)
    hdu 1005 Number Sequence
    51nod 1170 1770 数数字(数学技巧)
    hdu 2160 母猪的故事(睡前随机水一发)(斐波那契数列)
  • 原文地址:https://www.cnblogs.com/javalinux/p/14554833.html
Copyright © 2011-2022 走看看