2013-02-21 26 views
2

我想保存在線流到文件,我用IMediaReader和IMediaWriter在Java(在PC),它工作正常閱讀和寫道,但是當我嘗試在android中使用它給ExceptionInInitializeError。這是我的代碼IMediaReader和IMediaWriter在android中工作嗎?

 IMediaReader reader = ToolFactory.makeReader("rtsp://217.115.145.185:1935/live/mp4:alexlivestream_2"); 
     IMediaWriter writer = ToolFactory.makeWriter("output.mp4", reader); 

     // add a debug listener to the writer to see media writer events 
     writer.addListener(ToolFactory.makeDebugListener()); 
     reader.addListener(writer); 

     // read and decode packets from the source file and 
     // and dispatch decoded audio and video to the writer 
     int i=0; 
     while (i++<1000) { 
      System.out.println(i); 
      if (reader.readPacket() != null) { 
       break; 
      } 
     } 
     writer.close(); 

例外:

Exception Ljava/lang/ExceptionInInitializerError; thrown while initializing Lcom/xuggle/ferry/Ferry; 
Exception Ljava/lang/ExceptionInInitializerError; thrown while initializing Lcom/xuggle/xuggler/XugglerJNI; 
Exception Ljava/lang/ExceptionInInitializerError; thrown while initializing Lcom/xuggle/xuggler/IContainer; 
FATAL EXCEPTION: main 
java.lang.ExceptionInInitializerError 
at com.xuggle.mediatool.MediaReader.<init>(MediaReader.java:137) 
at com.xuggle.mediatool.ToolFactory.makeReader(ToolFactory.java:77) 
at com.example.yeni.MainActivity.startMediaToolsConversion(MainActivity.java:84) 
at com.example.yeni.MainActivity.onCreate(MainActivity.java:75) 
at android.app.Activity.performCreate(Activity.java:5206) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125) 
at android.app.ActivityThread.access$600(ActivityThread.java:140) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4898) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773) 
at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.ExceptionInInitializerError 
at com.xuggle.xuggler.IContainer.<clinit>(IContainer.java:1622) 
... 18 more 
    Caused by: java.lang.ExceptionInInitializerError 
at com.xuggle.xuggler.XugglerJNI.<clinit>(XugglerJNI.java:19) 
... 19 more 
    Caused by: java.lang.ExceptionInInitializerError 
at com.xuggle.ferry.Ferry.<clinit>(Ferry.java:25) 
... 20 more 
    Caused by: java.lang.UnsatisfiedLinkError: Couldn't load xuggle: findLibrary returned null 
at java.lang.Runtime.loadLibrary(Runtime.java:365) 
at java.lang.System.loadLibrary(System.java:535) 
at com.xuggle.ferry.JNILibraryLoader.loadLibrary0(JNILibraryLoader.java:268) 
at com.xuggle.ferry.JNILibraryLoader.loadLibrary(JNILibraryLoader.java:171) 
at com.xuggle.ferry.JNILibrary.load(JNILibrary.java:161) 
at com.xuggle.ferry.FerryJNI.<clinit>(FerryJNI.java:16) 
... 21 more 

對不起,我英文不好:)

+0

到知道從哪裏傳來的錯誤這是相當重要的(和它周圍的整個logcat的) – KevinDTimm 2013-02-21 19:20:21

+0

我編輯的題 – Qafqaz 2013-02-21 19:35:24

回答

1

有xuggler沒有本地端口到Android作好準備。

Xuggler基於ffmpeg的,有可以在這裏找到端口的討論,這是一個出發點:FFmpeg on Android