Mac OS下为Android Studio编译FFmpeg解码库的详细教程

2019-12-10 19:27:05丽君

5、编写Java文件
$ROOT_DIR/app/src/main/java/com/example/chengang/myapplication/MainActivity.java内容如下。
其中getStringFromNative()方法是我们实现的,打印了Ffmpeg库的版本号(我编译的这个是3673444)和视频文件的信息出来。

package com.example.chengang.myapplication;
 
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
 
 
public class MainActivity extends ActionBarActivity {
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
 
  TextView view = (TextView) findViewById(R.id.mytext);
  view.setText(this.getStringFromNative());
 }
 
 
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.menu_main, menu);
  return true;
 }
 
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
  // Handle action bar item clicks here. The action bar will
  // automatically handle clicks on the Home/Up button, so long
  // as you specify a parent activity in AndroidManifest.xml.
  int id = item.getItemId();
 
  //noinspection SimplifiableIfStatement
  if (id == R.id.action_settings) {
   return true;
  }
 
  return super.onOptionsItemSelected(item);
 }
 
 public native String getStringFromNative();
 static {
  System.loadLibrary("swresample-1");
  System.loadLibrary("avutil-54");
  System.loadLibrary("avformat-56");
  System.loadLibrary("avcodec-56");
  System.loadLibrary("swscale-3");
  System.loadLibrary("ovsplayer");
 }
}

附上布局文件是这样的。

<RelativeLayout xmlns:android="http://www.easck.com/apk/res/android"
 xmlns:tools="http://www.easck.com/tools" android:layout_width="match_parent"
 android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
 
 <TextView
  android:id="@+id/mytext"
  android:text="@string/hello_world" android:layout_width="wrap_content"
  android:layout_height="wrap_content" />
 
</RelativeLayout>