首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用国产SDK的播放器wlmedia渲染视频

使用国产SDK的播放器wlmedia渲染视频

作者头像
aqi00
发布2025-06-30 10:27:05
发布2025-06-30 10:27:05
14200
代码可运行
举报
文章被收录于专栏:老欧说安卓老欧说安卓
运行总次数:0
代码可运行

《FFmpeg开发实战:从零基础到短视频上线》一书的“第 12 章  FFmpeg的移动开发”介绍了如何使用FFmpeg在手机上播放视频,基于FFmpeg的国产播放器开源框架也有很多了,前有哔哩哔哩的ijkplayer,后有小红书的RedPlayer,参见之前的文章《使用国产的ijkplayer播放器观看网络视频》和《使用国产的RedPlayer播放器观看网络视频》。

除此以外,wlmedia也是一款优秀的国产音视频播放SDK,该框架既支持Android系统,也支持鸿蒙系统,集成方便、使用简单,可谓异军突起。wlmedia基于FFmpeg、OpenSSL、SoundTouch、dav1d等第三方库,支持file、http、https、udp、rtmp、rtp、rtsp、byte[]等常见播放协议,也支持H.264、H.265、AV1等视频编码格式。

wlmedia的源码托管地址为https://github.com/ywl5320/wlmedia,最新版本是2025年4月发布的wlmedia 4.2.0,可见该框架的源码更新十分及时。并且wlmedia的源码采用Java+XML编写,对于初学者而言非常友好,使用Android Studio Dolphin(小海豚版本)无需任何改动即可直接导入wlmedia的demo工程。

在自己的App工程中集成wlmedia也很简单,只要执行下列几个步骤就行。

一、导入wlmedia库

如果已经事先导入wlmedia的库工程,则只需在build.gradle中添加下面一行即可引入wlmedia:

代码语言:javascript
代码运行次数:0
运行
复制
implementation project(path: ':wlmedia')

如果不用库工程,也只要在build.gradle中添加下面一行即可引入wlmedia:

代码语言:javascript
代码运行次数:0
运行
复制
implementation 'com.github.ywl5320:wlmedia:4.2.0'

二、引入wlmedia控件

wlmedia提供了两种控件:WlSurfaceView和WlTextureView,其中WlSurfaceView用于一般的播放场景,布局代码示例如下:

代码语言:javascript
代码运行次数:0
运行
复制
<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="260dp">
    <-- WlSurfaceView 一般播放使用 -->
    <com.ywl5320.wlmedia.widget.WlSurfaceView
        android:id="@+id/wlsurfaceview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <-- WlSurfaceView 加载中的动画 -->
    <com.ywl5320.wlmedia.widget.WlCircleLoadView
        android:id="@+id/wlcircleview"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_centerInParent="true" />
    <-- WlSurfaceView 播放控制条 -->
    <com.ywl5320.wlmedia.widget.WlSeekBar
        android:id="@+id/wlseekbar"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true" />
</RelativeLayout>

而WlTextureView用于需要变更展示效果的场景,比如透明、移动、旋转等等,布局代码示例如下:

代码语言:javascript
代码运行次数:0
运行
复制
<-- WlTextureView 需要做透明、移动、旋转等使用 -->
<com.ywl5320.wlmedia.widget.WlTextureView
    android:id="@+id/wltextureview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

三、引入wlmedia播放器

wlmedia提供的播放器叫做WlPlayer,它的用法很简单,只要以下几行代码就够了:

代码语言:javascript
代码运行次数:0
运行
复制
// 创建播放器WlPlayer的实例
WlPlayer wlPlayer = new WlPlayer();
// 设置使用OpenGL渲染的最大视频宽高
wlPlayer.setRenderDefaultSize(3840, 2160);
// 是否自动播放
wlPlayer.setAutoPlay(true);
// 设置音量
wlPlayer.setVolume(100);
WlSurfaceView wlSurfaceView = findViewById(R.id.wlsurfaceview);
// 让控件wlSurfaceView关联播放器WlPlayer
wlSurfaceView.setWlPlayer(wlPlayer);

按照上述几个步骤给App工程集成wlmedia后,编译运行wlmedia的demo工程,打开测试App如下图所示,可见wlmedia提供了多种演示功能。

图片
图片

点击第一个“基础播放”按钮,打开普通播放页面如下图所示,可见wlmedia除了常规的控制操作之外,还提供了缩放、倍速、截图等其他功能。

图片
图片

总结一下,wlmedia的确使用简单,播放功能也丰富,是个不错的国产播放器SDK。

更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老欧说安卓 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档