Android 实现基于RTMP视频播放

本文介绍了在Android项目中实现RTMP视频播放的解决方案,通过使用基于ijkplayer的jjdxm_ijkplayer库。文章详细阐述了集成过程,包括遇到的问题和解决方法,如处理ijkplayer-armv7a包的缺失问题。提供了简单的UI配置示例,并提醒开发者根据需求自定义界面。集成完成后,只需替换直播地址即可实现RTMP视频流播放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近项目中要用于手机播放直播流,RTMP协议的视频。刚开始一顿蒙圈,这个和直播有什么区别。(以为需要用到大厂商的直播框架...)然后在网上找了好多视频播放框架。一开始集成的Android Vitamio。这个怎么说,确实很坑,确实能实现播放视频的功能,但是需要build的版本太低,无法兼容别的功能(eg:权限的管理,build版本必须在23一下,这个就很坑了)。果断的放弃了。再烂别的,中间也找了很多,最后用到的是:基于ijkplayer项目进行的播放器,jjdxm_ijkplayer。

项目地址:jjdxm_ijkplayer

简介:基于 ijkplayer 简单的 UI 界面 当前项目是基于 ijkplayer 项目进行的播放器界面 UI 封装。 是一个适用于 Android 的 RTMP 直播推流 SDK,可高度定制化和二次开发。特色是同时支持 H.264 软编/硬编和 AAC 软编/硬编。主要是支持 RIMP、HLS、MP4、M4A 等视频格式的播放。

关于jjdxm_ijkplayer就说这么多了。项目地址已经贴上了,大家可以在GitHub上自习的查看。

接下来就来说说我的集成步骤,并贴上相关的主意事项与代码:

先看下效果:(由于是直播湖南卫视的,所以我把底部的进度条给取消了。你们可以根据自己的UI,来改变界面)

首先导入项目:

在app的build中,加入

api project(':jjdxm-ijkplayer')

基本上就这些了,详细的过程就不说了。导入之后,将导入的项目中的相关版本改为与app的版本一致,以免发生冲突。

导入依赖:

//    根据需要支持去拓展,在jjdxm-ijkplayer中默认加入了armv7a的了
    api 'com.dou361.ijkplayer-armv7a:jjdxm-ijkplayer-armv7a:1.0.0'
    api 'com.dou361.ijkplayer-armv5:jjdxm-ijkplayer-armv5:1.0.0'
    api 'com.dou361.ijkplayer-arm64:jjdxm-ijkplayer-arm64:1.0.0'
    api 'com.dou361.ijkplayer-x86:jjdxm-ijkplayer-x86:1.0.0'
    api 'com.dou361.ijkplayer-x86_64:jjdxm-ijkplayer-x86_64:1.0.0'

有可能在编译时,出现 找不到jjdxm-ijkplayer-armv7a包。不要慌~~

先将jjdxm-ijkplayer-armv7a依赖注释掉(导入的项目中可能也有,同样注释掉)

找到你下载的demon中的release 目录,其中有so文件,直接将其中的文件拷贝到app的libs目录中。

好了,大功告成,到这里就集成成功了。接下来就到了码代码的环节了。。。

ViewIjkplayerActivity:

package com.project.evaluationmobile.activity;
 
import android.content.Context;
import android.content.res.Configuration;
import android.os.PowerManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
 
import com.bumptech.glide.Glide;
import com.dou361.ijkplayer.listener.OnShowThumbnailListener;
import com.dou361.ijkplayer.widget.PlayStateParams;
import com.dou361.ijkplayer.widget.PlayerView;
import com.project.evaluationmobile.R;
import com.project.evaluationmobile.util.MediaUtils;
 
public class ViewIjkplayerActivity extends AppCompatActivity {
 
    private View rootView;
    private PowerManager.WakeLock wakeLock;
    private PlayerView player;
    private String videoPath = "rtmp://58.200.131.2:1935/livetv/hunantv";
    //    private String videoPath = "rtmp://192.168.100.177:1935/live/test1";
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值