超简单!Android 播放流媒体

简介

我利用了大名鼎鼎的vlc来播放媒体。它可以播放来自网络、摄像头、磁盘、光驱的文件,支持包括MPEG 1/2/4, H264, VC-1, DivX, WMV, Vorbis, AC3, AAC等格式的解码。
但是libvlc对于普通的开发者还是有一些门槛的,为此,我封装了一个超级简单的库,来帮助大家使用libvlc。

使用

在我们的项目根目录下的build.gradle,引入jitpack:

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

然后在我们项目的app下的引入库:

dependencies {
    implementation 'com.github.mafanwei:libvlc:Tag'
}

写本文时,tag为0.0.5,基于libvlc 3.2.5,可以通过链接查看最新的版本。
使用起来也非常的简单,只需要在我们需要播放媒体的activity下:

//创建一个builder对象
VlcVideoLibrary.Builder builder = new VlcVideoLibrary.Builder(context,true);
//设置一个要渲染的object: Surface/SurfaceView/TextureView/SurfaceTexture
builder.setSurfaceView(surfaceView);
//创建 VlcVideoLibrary对象
VlcVideoLibrary vlcVideoLibrary = builder.create();
//设置一个播放url,比如 rtsp.
vlcVideoLibrary.setPlayUrl("rtsp://192.168.31.192:1234");
//设置输出
vlcVideoLibrary.setVlcVout();
//开始播放
vlcVideoLibrary.startPlay();

如果你不想播放trsp想播放别的流媒体,只需要改播放的url就可以了
常见的协议头有:
http rtsp rtmp mms ftp
如果想播放文件,可以使用我封装的setPlayFile,只需要传一个文件路径就可以了,或者使用setPlayUrl传入file://路径即可。
我设置了建造者模式的builder,其中有很多的api,方便大家设置参数。大家看名称就能知道具体意思,在这里就不一一叙述了。
我还保留的player接口,你可以自己拿到,实现追踪媒体,快进,慢放,缩放等等一系列的功能。

如果需要更多的api,或者有更好的idea,可以在github上提issue/pr给我。
地址如下:github地址,欢迎star!

如果你觉得对你有用,请帮助我。

发布了28 篇原创文章 · 获赞 49 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qwe25878/article/details/105579760