IJKPlayer视频播放

来源:互联网 发布:lnux php 编辑:程序博客网 时间:2024/06/16 03:12
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>重点来了:mainactivityimport 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'