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的源碼

                    添加依賴的源碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章