基于IJK打造自己的播放器(一) 简单集成使用ijkPlayer播放hls视频
一 前言
ijk播放器的背景我就不多说了。随便一搜就有,我想说的是,这篇文章只是教大家适合使用ijkplayer。
这里适合新手。简单说一下我们常用的播放视频。一般来说,播放视频分成视频显示控件、视频播放(解码)这两块。
视频显示控件主要有:
1.SurfaceView surfaceview+原生mediaplayer 是比较通俗的播放视频组合。ijkplayer 提供的就是一个mediaplayer 。
2.TextureView
至于他们的子类,glsurfaceview之类就不多描述。他们之间的差异,有兴趣的可以百度下。
比较主流的播放器的有:
1.手机原生的mediaplayer.
2.谷歌出的EXOplayer。前文有使用描述,有兴趣可以去看
3.B站的IJKplayer.
4.各大公司自己写的。
二、集成步骤
样子如下:
不知道什么原因 我小米自带的播放器无法播放这个直播流,所以两个流不一样。你们可以改成一样的测试下。
我们这里不涉及自己编译 so。仅仅是集成能够测试播放视频。给大家做个演示
1、直接关联
implementation 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'
implementation 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'
简单使用,就是这么简单,这里B站已经帮编译好了。但是缺点也蛮多的。
1、不支持https流。
2、不支持rtsp/rtmp流。
还有其他的需要各位自己去测。
2.简单使用
1.布局文件
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><SurfaceViewandroid:layout_width="match_parent"android:layout_height="300dp"android:id="@+id/sv_view"/><VideoViewandroid:layout_marginTop="20dp"android:layout_width="match_parent"android:layout_height="300dp"android:id="@+id/vv_view"/></LinearLayout>
我们使用surfaceview来作为显示控件。下面是videoview来跟原生播放器作一个对比。
2.Java文件
package com.test.ijkdemo;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.VideoView;import java.io.IOException;import tv.danmaku.ijk.media.player.IMediaPlayer;
import tv.danmaku.ijk.media.player.IjkMediaPlayer;/*** play video with ijk&native*/
public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback {private VideoView vv_view;private SurfaceView sv_view;private IjkMediaPlayer ijkMediaPlayer;private SurfaceHolder holder;String testURl="https://video-dev.github.io/streams/x36xhzz/x36xhzz.m3u8";String testURl1="http://weblive.hebtv.com/live/hbgg_bq/index.m3u8";String testURl2="https://video-dev.github.io/streams/x36xhzz/x36xhzz.m3u8";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();initData();}private void initData() {ijkMediaPlayer = new IjkMediaPlayer();holder = sv_view.getHolder();holder.addCallback(this);try {ijkMediaPlayer.setDataSource(testURl1);} catch (IOException e) {e.printStackTrace();}ijkMediaPlayer.setOnPreparedListener(new OnprePareListener());ijkMediaPlayer.prepareAsync();//使用videoview+mediaplayer播放vv_view.setVideoPath(testURl2);vv_view.start();}private void initView() {sv_view = findViewById(R.id.sv_view);vv_view = findViewById(R.id.vv_view);}class OnprePareListener implements IMediaPlayer.OnPreparedListener {@Overridepublic void onPrepared(IMediaPlayer iMediaPlayer) {ijkMediaPlayer.start();}}@Overridepublic void surfaceCreated(SurfaceHolder holder) {this.holder=holder;ijkMediaPlayer.setDisplay(holder);}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {}
}
3.权限
<uses-permission android:name="android.permission.INTERNET"/>
基本使用就到这里了,希望对新手有用。
基于IJK打造自己的播放器(一) 简单集成使用ijkPlayer播放hls视频相关推荐
- Android音乐播放器eclipse,简单的Android音乐播放器 eclipse开发的基于Android平台的音乐播放器 - 下载 - 搜珍网...
压缩包 : 音乐播放器.zip 列表 音乐播放器/ 音乐播放器/.classpath 音乐播放器/.project 音乐播放器/.settings/ 音乐播放器/.settings/org.eclip ...
- 图片播放器 简单使用
(1)前台_客户端: var focus_width=800;//图片宽 var focus_height=600;//图片高 var text_height=20;//字高 ...
- GSYVideoPlayer(基于ijkplayer)之rtmp协议播放器的简单应用
基于ijkplayer的GSYVideoPlayer rtmp协议播放器的简单应用 **添加依赖** **Manifest配置** **Layout布局** activity_start.xml ac ...
- 搬砖之路----MusicPlayer 一个基于Vlc(2.0+)开发的android音乐播放器--浅析在android开发过程中播放器选择之路!
前言 MusicPlayer 是一款基于vlc播放器开发的一个音乐播放器,你也可以理解为在此核心上的搬砖之路,核心的内容并不是我写的,因此在正式写blog之前,感谢那些vlc核心的开发人员让我用到这么 ...
- 【QT的音乐播放器(简单版)】
基于QT的音乐播放器 前言 一.主体效果 二.主要技术点: 1. mp3的ID3V2格式文件解析:作者.歌手.时长.专辑图片等 1.1 需要工具: 1.2 ID3V2文件格式 1.3 mp3ID3V2 ...
- java播放器使用教程_java 实现音乐播放器的简单实例
java 实现音乐播放器的简单实例 实现效果图: 代码如下 package cn.hncu.games; import java.applet.Applet; import java.applet.A ...
- linux 中文 音乐播放器,linux下的常见音乐播放器
xmms 老牌的音乐播放器,模仿Windows下*的播放器Winamp,其强大的功能不输于Winamp,具有极强的可扩展性,支持mp3.ogg.wav等格式播放,添加插件后还可以播放AAC.wma等格 ...
- html音乐播放器代码自动,html5 css3音乐播放器代码
特效描述:html5 css3 音乐播放器代码.html5 css3音乐播放器代码 代码结构 1. 引入CSS 2. 引入JS 3. HTML代码 标题歌手 00:00/00:00 var music ...
- 带倍速音频播放器_带有播放列表HTML5音频播放器
带倍速音频播放器 HTML5 Audio player with playlist HTML5 audio player. Many of you faced with the task of cre ...
最新文章
- gtest使用初级指南
- etcd与mysql_一、配置etcd数据库
- spark内核揭秘-02-spark集群概览
- 阿里巴巴Java开发 之 编程规约
- Spark Yarn-cluster与Yarn-client
- 高阶函数-语法糖-lambda(三分钟读懂)
- android 4.2.1短信接收以及应用接收顺序
- 笔记︱精准营销解决方案以及营销组合评估
- Mat矩阵和数组的运算
- java 实现QQ自动登录(带验证码)
- html 鼠标划过 ie导致白屏,win7系统IE浏览器网页出现白屏的解决方法
- git 提交时报错 error: failed to push some refs to ‘https://github.com/xxx/demo.git 解决方法
- 网红汉字手机全屏时钟APP下载
- 将svn diff改成用vimdiff命令进行可视化差异显示
- 容器与容器云——Docker容器基本概念
- [vue] 无缝滚动 vue-seamless-scroll 滚动表格
- 英语爱阅读--I hope you live a life you're proud of
- springCloud 学习第一篇(介绍以及Rest 学习:服务者 与消费者 环境搭建)
- 图像采集卡的选择和主要参数
- 《剑指offer》75题 C++详细题解
热门文章
- 我是一位40岁的“老程序员”,我有一些想法
- 蒋鑫鸿:9.9黄金交替洗盘,日内黄金行情走势分析白银原油操作建议
- 【Python】银行家算法(四舍六入五成双)和使用decimal进行四舍五入处理
- 迅雷网心云赚钱宝3代【Pro】8核性能神器,真实收益有多高?
- 通达oa wbupload.php,通达 OA 代码审计篇二 :11.8 后台 Getshell
- 梦亚网络验证开源源码
- USB 中MTP和UMS 模式
- Open Live Writer的配置
- 腾讯Coding的持续部署模块的使用。
- 第一部分 顺序表和链表