IJKPlayer视频播放

本文详细介绍如何在iOS应用中集成Bilibili开源的IJKPlayer媒体播放库,包括布局配置、关键代码实现及权限设置等,即使初次接触也能轻松上手。
IJKPlayer是Bilibili开源的一个媒体播放库,一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijkplayer, 即便以前从没有接触过, 按着下面做也可以集成成功!

在mainactivity布局里

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="20dp">

<tv.danmaku.ijk.media.widget.media.IjkVideoView
    android:id="@+id/ijkPlayer"
    android:layout_width="match_parent"
    android:layout_height="300dp"/>

</RelativeLayout>

在values目录下创建dimens.xml
<resources>
    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>
</resources>

重点来了:mainactivity

import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import tv.danmaku.ijk.media.player.IjkMediaPlayer;
import tv.danmaku.ijk.media.widget.media.AndroidMediaController;
import tv.danmaku.ijk.media.widget.media.IjkVideoView;

public class MainActivity extends AppCompatActivity {

    IjkVideoView videoView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //播放视频
        IjkMediaPlayer.loadLibrariesOnce(null);
        IjkMediaPlayer.native_profileBegin("libijkplayer.so");
        videoView = (IjkVideoView) findViewById(R.id.ijkPlayer);
        AndroidMediaController controller=new AndroidMediaController(this,false);
        videoView.setMediaController(controller);
        String url="https://wdl.wallstreetcn.com/41aae4d2-390a-48ff-9230-ee865552e72d";
        videoView.setVideoURI(Uri.parse(url));
        videoView.start();

    }

    public void setOrientation(int orientation) {

         if(orientation== ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){

             setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
         }else{

             setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
         }
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
    }

    @Override
    protected void onPause() {
        super.onPause();
        videoView.pause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        IjkMediaPlayer.native_profileEnd();
    }

    @Override
    protected void onResume() {
        super.onResume();
        videoView.resume();
    }
}

//权限
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

//依赖
 compile 'com.github.leifzhang:IjkLib:0.4.3'

资源下载链接为: https://pan.quark.cn/s/27e1210fbf58 IjkVideoView 是一个封装了 Ijkplayer视频播放组件,它通过引入新的 .so 文件,能够支持多种视频格式,包括 AVI、MP4、FLV 和 MKV 等。在使用 IjkVideoView 时,开发者可以选择两种方式:一种是直接添加封装好的库文件(lib),另一种是通过添加依赖的方式集成。 如果选择添加库文件,首先需要创建一个项目,并将 ijkplayerlib 导入到项目中。接着,在项目的 build.gradle 文件中添加 Ijkplayer 的 Java 和 Exo 模块依赖,版本号为 0.8.8。此外,还需要在 AndroidManifest.xml 文件中添加必要的权限,如网络权限、外部存储写入权限和网络状态访问权限。在布局文件中,可以定义一个包含 IjkVideoView 的布局,通过设置其 id 和宽高等属性来配置视频播放区域。在代码中,可以通过调用 setVideoURI 方法设置视频路径,并调用 start 方法开始播放。例如,可以设置视频路径为存储卡根目录下的 a11.avi 文件。 如果选择通过添加依赖的方式集成,只需在项目的 build.gradle 文件中添加 ijkvideoview 的依赖,版本号为 0.0.1。其他步骤,如添加权限和布局配置,以及使用 IjkVideoView 的方式,都与添加库文件的方法相同。 无论采用哪种方式,开发者都可以通过简单的配置和代码实现对多种视频格式的支持,从而提升应用的视频播放功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值