## 依赖项目
- ijkplayer-java
简单使用
- 布局文件
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<SurfaceView
android:id="@+id/viedo_surface"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
- 加载so库
IjkMediaPlayer.loadLibrariesOnce(null);
IjkMediaPlayer.native_profileBegin("libijkplayer.so");
实例化播放器类
IjkMediaPlayer player = new IjkMediaPlayer();
找到SurfaceView
SurfaceView mSurfaceView = (SurfaceView) findViewById(R.id.viedo_surface);
设置surfaceholder
player.setDisplay( mSurfaceView.getHolder() );
- 设置视频源
player.setDataSource("xxxx");
- 开启异步准备和播放
player.prepareAsync()
player.start();
完整activity代码
package com.example.durong.ijktest;
import android.content.Context;
import android.graphics.SurfaceTexture;
import android.media.AudioManager;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import java.io.IOException;
import tv.danmaku.ijk.media.player.IMediaPlayer;
import tv.danmaku.ijk.media.player.IjkMediaPlayer;
public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback {
private IjkMediaPlayer mPlayer;
private SurfaceView mSurfaceView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSurfaceView = (SurfaceView) findViewById(R.id.viedo_surface);
mSurfaceView.getHolder().addCallback(this);
initPlayer();
}
private void initPlayer() {
IjkMediaPlayer.loadLibrariesOnce(null);
IjkMediaPlayer.native_profileBegin("libijkplayer.so");
mPlayer = new IjkMediaPlayer();
try {
mPlayer.setDataSource("http://ofbrh1334.bkt.clouddn.com/ddr.mp4");
} catch (IOException e) {
e.printStackTrace();
}
mPlayer.prepareAsync();
mPlayer.start();
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
mPlayer.setDisplay(holder);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
}