一 前言

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视频相关推荐

  1. Android音乐播放器eclipse,简单的Android音乐播放器 eclipse开发的基于Android平台的音乐播放器 - 下载 - 搜珍网...

    压缩包 : 音乐播放器.zip 列表 音乐播放器/ 音乐播放器/.classpath 音乐播放器/.project 音乐播放器/.settings/ 音乐播放器/.settings/org.eclip ...

  2. 图片播放器 简单使用

    (1)前台_客户端:     var focus_width=800;//图片宽     var focus_height=600;//图片高     var text_height=20;//字高 ...

  3. GSYVideoPlayer(基于ijkplayer)之rtmp协议播放器的简单应用

    基于ijkplayer的GSYVideoPlayer rtmp协议播放器的简单应用 **添加依赖** **Manifest配置** **Layout布局** activity_start.xml ac ...

  4. 搬砖之路----MusicPlayer 一个基于Vlc(2.0+)开发的android音乐播放器--浅析在android开发过程中播放器选择之路!

    前言 MusicPlayer 是一款基于vlc播放器开发的一个音乐播放器,你也可以理解为在此核心上的搬砖之路,核心的内容并不是我写的,因此在正式写blog之前,感谢那些vlc核心的开发人员让我用到这么 ...

  5. 【QT的音乐播放器(简单版)】

    基于QT的音乐播放器 前言 一.主体效果 二.主要技术点: 1. mp3的ID3V2格式文件解析:作者.歌手.时长.专辑图片等 1.1 需要工具: 1.2 ID3V2文件格式 1.3 mp3ID3V2 ...

  6. java播放器使用教程_java 实现音乐播放器的简单实例

    java 实现音乐播放器的简单实例 实现效果图: 代码如下 package cn.hncu.games; import java.applet.Applet; import java.applet.A ...

  7. linux 中文 音乐播放器,linux下的常见音乐播放器

    xmms 老牌的音乐播放器,模仿Windows下*的播放器Winamp,其强大的功能不输于Winamp,具有极强的可扩展性,支持mp3.ogg.wav等格式播放,添加插件后还可以播放AAC.wma等格 ...

  8. html音乐播放器代码自动,html5 css3音乐播放器代码

    特效描述:html5 css3 音乐播放器代码.html5 css3音乐播放器代码 代码结构 1. 引入CSS 2. 引入JS 3. HTML代码 标题歌手 00:00/00:00 var music ...

  9. 带倍速音频播放器_带有播放列表HTML5音频播放器

    带倍速音频播放器 HTML5 Audio player with playlist HTML5 audio player. Many of you faced with the task of cre ...

最新文章

  1. gtest使用初级指南
  2. etcd与mysql_一、配置etcd数据库
  3. spark内核揭秘-02-spark集群概览
  4. 阿里巴巴Java开发 之 编程规约
  5. Spark Yarn-cluster与Yarn-client
  6. 高阶函数-语法糖-lambda(三分钟读懂)
  7. android 4.2.1短信接收以及应用接收顺序
  8. 笔记︱精准营销解决方案以及营销组合评估
  9. Mat矩阵和数组的运算
  10. java 实现QQ自动登录(带验证码)
  11. html 鼠标划过 ie导致白屏,win7系统IE浏览器网页出现白屏的解决方法
  12. git 提交时报错 error: failed to push some refs to ‘https://github.com/xxx/demo.git 解决方法
  13. 网红汉字手机全屏时钟APP下载
  14. 将svn diff改成用vimdiff命令进行可视化差异显示
  15. 容器与容器云——Docker容器基本概念
  16. [vue] 无缝滚动 vue-seamless-scroll 滚动表格
  17. 英语爱阅读--I hope you live a life you're proud of
  18. springCloud 学习第一篇(介绍以及Rest 学习:服务者 与消费者 环境搭建)
  19. 图像采集卡的选择和主要参数
  20. 《剑指offer》75题 C++详细题解

热门文章

  1. 我是一位40岁的“老程序员”,我有一些想法
  2. 蒋鑫鸿:9.9黄金交替洗盘,日内黄金行情走势分析白银原油操作建议
  3. 【Python】银行家算法(四舍六入五成双)和使用decimal进行四舍五入处理
  4. 迅雷网心云赚钱宝3代【Pro】8核性能神器,真实收益有多高?
  5. 通达oa wbupload.php,通达 OA 代码审计篇二 :11.8 后台 Getshell
  6. 梦亚网络验证开源源码
  7. USB 中MTP和UMS 模式
  8. Open Live Writer的配置
  9. 腾讯Coding的持续部署模块的使用。
  10. 第一部分 顺序表和链表