How to use ijkplayer library

I am going to use the ijkplayer github link . I downloaded this and then imported it into the eclipse using the file> Import> General> Existing Projects in Workspace. After that, I have three projects:

1.ijkmediaplayer ( library ) 2.ijkmediawidget ( VideoView-like interface ) 3.ijkmediademo ( Demo project ) 

When I start ijkmediademo, an error occurred and the program crashed. I got the following error lines:

 07-06 14:06:26.913: E/AndroidRuntime(11394): FATAL EXCEPTION: main 07-06 14:06:26.913: E/AndroidRuntime(11394): Process: tv.danmaku.ijk.media.demo, PID: 11394 07-06 14:06:26.913: E/AndroidRuntime(11394): java.lang.UnsatisfiedLinkError: Couldn't load ijkffmpeg from loader dalvik.system.PathClassLoader[dexPath=/data/app/tv.danmaku.ijk.media.demo-8.apk,libraryPath=/data/app-lib/tv.danmaku.ijk.media.demo-8]: findLibrary returned null 07-06 14:06:26.913: E/AndroidRuntime(11394): at java.lang.Runtime.loadLibrary(Runtime.java:358) 07-06 14:06:26.913: E/AndroidRuntime(11394): at java.lang.System.loadLibrary(System.java:526) 07-06 14:06:26.913: E/AndroidRuntime(11394): at tv.danmaku.ijk.media.player.IjkMediaPlayer$1.loadLibrary(IjkMediaPlayer.java:86) 07-06 14:06:26.913: E/AndroidRuntime(11394): at tv.danmaku.ijk.media.player.IjkMediaPlayer.loadLibrariesOnce(IjkMediaPlayer.java:95) 07-06 14:06:26.913: E/AndroidRuntime(11394): at tv.danmaku.ijk.media.player.IjkMediaPlayer.initPlayer(IjkMediaPlayer.java:137) 07-06 14:06:26.913: E/AndroidRuntime(11394): at tv.danmaku.ijk.media.player.IjkMediaPlayer.<init>(IjkMediaPlayer.java:133) 07-06 14:06:26.913: E/AndroidRuntime(11394): at tv.danmaku.ijk.media.player.IjkMediaPlayer.<init>(IjkMediaPlayer.java:125) 07-06 14:06:26.913: E/AndroidRuntime(11394): at tv.danmaku.ijk.media.widget.VideoView.openVideo(VideoView.java:244) 07-06 14:06:26.913: E/AndroidRuntime(11394): at tv.danmaku.ijk.media.widget.VideoView.access$30(VideoView.java:229) 07-06 14:06:26.913: E/AndroidRuntime(11394): at tv.danmaku.ijk.media.widget.VideoView$8.surfaceCreated(VideoView.java:502) 07-06 14:06:26.913: E/AndroidRuntime(11394): at android.view.SurfaceView.updateWindow(SurfaceView.java:602) 07-06 14:06:26.913: E/AndroidRuntime(11394): at android.view.SurfaceView.access$000(SurfaceView.java:94) 07-06 14:06:26.913: E/AndroidRuntime(11394): at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:183) 07-06 14:06:26.913: E/AndroidRuntime(11394): at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:888) 07-06 14:06:26.913: E/AndroidRuntime(11394): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2173) 07-06 14:06:26.913: E/AndroidRuntime(11394): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246) 07-06 14:06:26.913: E/AndroidRuntime(11394): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6567) 07-06 14:06:26.913: E/AndroidRuntime(11394): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:803) 07-06 14:06:26.913: E/AndroidRuntime(11394): at android.view.Choreographer.doCallbacks(Choreographer.java:603) 07-06 14:06:26.913: E/AndroidRuntime(11394): at android.view.Choreographer.doFrame(Choreographer.java:573) 07-06 14:06:26.913: E/AndroidRuntime(11394): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:789) 07-06 14:06:26.913: E/AndroidRuntime(11394): at android.os.Handler.handleCallback(Handler.java:733) 07-06 14:06:26.913: E/AndroidRuntime(11394): at android.os.Handler.dispatchMessage(Handler.java:95) 07-06 14:06:26.913: E/AndroidRuntime(11394): at android.os.Looper.loop(Looper.java:136) 07-06 14:06:26.913: E/AndroidRuntime(11394): at android.app.ActivityThread.main(ActivityThread.java:5476) 07-06 14:06:26.913: E/AndroidRuntime(11394): at java.lang.reflect.Method.invokeNative(Native Method) 07-06 14:06:26.913: E/AndroidRuntime(11394): at java.lang.reflect.Method.invoke(Method.java:515) 07-06 14:06:26.913: E/AndroidRuntime(11394): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) 07-06 14:06:26.913: E/AndroidRuntime(11394): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 07-06 14:06:26.913: E/AndroidRuntime(11394): at dalvik.system.NativeStart.main(Native Method) 

It seems that the program cannot find some libraries that are installed here in the IjkMediaPlayer class:

 public static void loadLibrariesOnce(IjkLibLoader libLoader) { synchronized (IjkMediaPlayer.class) { if (!mIsLibLoaded) { libLoader.loadLibrary("stlport_shared"); libLoader.loadLibrary("ijkffmpeg"); libLoader.loadLibrary("ijkutil"); libLoader.loadLibrary("ijkadk"); libLoader.loadLibrary("ijksdl"); libLoader.loadLibrary("ijkplayer"); mIsLibLoaded = true; } } } 

what are these libraries?

where are these libraries? (I could not find them in the projects)

How to solve this problem?

+5
android eclipse ffmpeg media-player
source share
1 answer

It seems that you have not created the libraries you require - you need to do it yourself. Follow the instructions in the Android Build title on the ijkplayer github link page

After successfully creating the process, you will receive several library files (libijkffmpeg, libijkutil, libijkadk, libijksdl, libijkplayer) that will be automatically placed in the ijkmediaplayer/libs folder.

I have successfully created the ijkplayer libraries under VirtualBox Ubuntu 12.04. And you will have to install Android NDK.

+2
source share

All Articles