IjkVideoView播放视频(支持avi格式的视频)

上一篇   Ijkplayer播放视频(支持AVI格式的视频) 讲了,Ijkplayer和SurfaceView结合,播放视频。这一篇我们把Ijkpayer和SurfaceView进行封装,封装成Ijkplayer,这篇就讲讲怎么使用IjkVideoview,这里仍旧是支持avi格式的。

我把Ijkpayer和SurfaceView封装成一个lib,取名 ijkplayerlib,我会放上我的项目地址,需要的直接下载下来,就可以了。我也把它传到了github上,所以觉得下载麻烦的也可以直接添加依赖。下面我会分别介绍添加lib和添加依赖两种方法。

一,添加lib 。

 1,建一个项目,导入  ijkplayerlib,如图。

2,在app的 build.gradle 中添加依赖。

    implementation 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'
    implementation 'tv.danmaku.ijk.media:ijkplayer-exo:0.8.8'

3,添加权限。

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

4,添加布局。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent">

    <EditText
        android:id="@+id/edit"
        android:layout_width="match_parent"
        android:layout_height="50dp" />

    <Button
        android:layout_width="match_parent"
        android:id="@+id/btn"
        android:layout_height="50dp" />

    <com.airbridge.ijkplayerlib.widget.IjkVideoView
        android:id="@+id/videoview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</LinearLayout>

5,使用IjkVideoview。

 String path = Environment.getExternalStorageDirectory().getPath() + "/a11.avi";//存放在手机存储卡根目录下

....

 videoview.setVideoURI(Uri.parse(path));
 videoview.start();

完整的使用代码。

package com.gl.ijkplayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import com.airbridge.ijkplayerlib.widget.IjkVideoView;

public class MainActivity extends AppCompatActivity {
    IjkVideoView videoview;
    EditText edit;
//        String path = "android.resource://" + getPackageName() + "/" + R.raw.a11;//放在程序内部 raw文件夹
//        String path = "http://ivi.bupt.edu.cn/hls/cctv2.m3u8";//直播链接
//        String path = "http://mp4.vjshi.com/2013-05-28/2013052815051372.mp4";//网络获取视频资源
//        String path = Environment.getExternalStorageDirectory().getPath() + "/a12.flv";//存放在手机存储卡根目录下
          String path = Environment.getExternalStorageDirectory().getPath() + "/a11.avi";//存放在手机存储卡根目录下

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        PermissionUtils.getPermiss(this);//获得权限

        videoview = findViewById(R.id.videoview);
         edit = findViewById(R.id.edit);
        edit.setText(path);

       findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
              if (PermissionUtils.getPermiss(MainActivity.this)){
                  path = edit.getText().toString();
                  videoview.setVideoURI(Uri.parse(path));
                  videoview.start();
              }
           }
       });
    }

    @Override
    protected void onResume() {
        super.onResume();
        if (!videoview.isPlaying()){
            videoview.onResume();
        }
    }

    @Override
    protected void onPause() {
        super.onPause();
        if (videoview.isPlaying()){
            videoview.onPause();
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        videoview.stopPlayback();

    }
}

二,添加依赖。

1,建一个项目,在app的build.gradle中添加依赖。

 implementation 'com.github.gaolongliuxinghun:ijkvideoview:0.0.1'

2,添加权限。

       做法和第一种方法添加lib,中的做法一样。

3,添加布局。

       做法和第一种方法添加lib,中的做法一样。

4,使用IjkVideoview。

       做法和第一种方法添加lib,中的做法一样。

 

源码大放送:添加lib的源码

                    添加依赖的源码

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值