2014-01-28 474 views
2

我正在開發一個使用Quickblox庫的android視頻聊天應用程序。但是我在維護視頻聊天會話時遇到了一些錯誤。當用戶以接收者(第二用戶)身份登錄時,應用程序在給出以下日誌輸出後會崩潰。Android Quickblox視頻聊天錯誤

01-28 18:23:20.149: W/System.err(15082): at java.net.PlainSocketImpl.access$100(PlainSocketImpl.java:46) 
01-28 18:23:20.149: W/System.err(15082): at java.net.PlainSocketImpl$PlainSocketOutputStream.write(PlainSocketImpl.java:269) 
01-28 18:23:20.149: W/System.err(15082): at java.io.DataOutputStream.write(DataOutputStream.java:98) 
01-28 18:23:20.149: W/System.err(15082): at java.io.OutputStream.write(OutputStream.java:82) 
01-28 18:23:20.149: W/System.err(15082): at com.quickblox.module.videochat.core.senders.TcpPacketsSender$TcpVideoAudioSenderRunnable.run(TcpPacketsSender.java:98) 
01-28 18:23:20.149: W/System.err(15082): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442) 
01-28 18:23:20.149: W/System.err(15082): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
01-28 18:23:20.149: W/System.err(15082): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
01-28 18:23:20.149: W/System.err(15082): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
01-28 18:23:20.149: W/System.err(15082): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
01-28 18:23:20.149: W/System.err(15082): at java.lang.Thread.run(Thread.java:856) 
01-28 18:23:20.159: W/System.err(15082): Caused by: libcore.io.ErrnoException: sendto failed: EPIPE (Broken pipe) 
01-28 18:23:20.159: W/System.err(15082): at libcore.io.Posix.sendtoBytes(Native Method) 
01-28 18:23:20.159: W/System.err(15082): at libcore.io.Posix.sendto(Posix.java:146) 
01-28 18:23:20.159: W/System.err(15082): at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:177) 
01-28 18:23:20.159: W/System.err(15082): at libcore.io.IoBridge.sendto(IoBridge.java:463) 
01-28 18:23:20.159: W/System.err(15082): ... 12 more 
01-28 18:23:20.199: W/AudioTrack(15082): obtainBuffer() track 0x7e5788 disabled, restarting 
01-28 18:23:20.219: W/ilbc-codec(15082): Ignore last 0 bytes 
01-28 18:23:20.349: W/System.err(15082): java.net.SocketException: sendto failed: EPIPE (Broken pipe) 
01-28 18:23:20.359: W/System.err(15082): at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:496) 
01-28 18:23:20.359: W/System.err(15082): at libcore.io.IoBridge.sendto(IoBridge.java:465) 
01-28 18:23:20.359: W/System.err(15082): at java.net.PlainSocketImpl.write(PlainSocketImpl.java:507) 
01-28 18:23:20.359: W/System.err(15082): at java.net.PlainSocketImpl.access$100(PlainSocketImpl.java:46) 
01-28 18:23:20.359: W/System.err(15082): at java.net.PlainSocketImpl$PlainSocketOutputStream.write(PlainSocketImpl.java:269) 
01-28 18:23:20.359: W/System.err(15082): at java.io.DataOutputStream.write(DataOutputStream.java:98) 
01-28 18:23:20.359: W/System.err(15082): at java.io.OutputStream.write(OutputStream.java:82) 
01-28 18:23:20.359: W/System.err(15082): at com.quickblox.module.videochat.core.senders.TcpPacketsSender$TcpVideoAudioSenderRunnable.run(TcpPacketsSender.java:98) 
01-28 18:23:20.359: W/System.err(15082): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442) 
01-28 18:23:20.359: W/System.err(15082): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
01-28 18:23:20.359: W/System.err(15082): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
01-28 18:23:20.359: W/System.err(15082): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
01-28 18:23:20.359: W/System.err(15082): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
01-28 18:23:20.359: W/System.err(15082): at java.lang.Thread.run(Thread.java:856) 
01-28 18:23:20.359: W/System.err(15082): Caused by: libcore.io.ErrnoException: sendto failed: EPIPE (Broken pipe) 
01-28 18:23:20.369: W/System.err(15082): at libcore.io.Posix.sendtoBytes(Native Method) 
01-28 18:23:20.369: W/System.err(15082): at libcore.io.Posix.sendto(Posix.java:146) 
01-28 18:23:20.369: W/System.err(15082): at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:177) 
01-28 18:23:20.369: W/System.err(15082): at libcore.io.IoBridge.sendto(IoBridge.java:463) 
01-28 18:23:20.379: W/System.err(15082): ... 12 more 

有時它給AdioRecord錯誤

java.lang.IllegalStateException: startRecording() called on an uninitialized AudioRecord. 

任何人有任何想法,這個還是有聊天應用集成任何其他庫? 感謝

編輯 這裏有一些更多的錯誤,

所有的
01-29 16:38:58.831: E/AndroidRuntime(6775): FATAL EXCEPTION: Thread-3039 
01-29 16:38:58.831: E/AndroidRuntime(6775): java.lang.ExceptionInInitializerError 
01-29 16:38:58.831: E/AndroidRuntime(6775):  at com.quickblox.module.videochat.core.AudioRecorder$AudioRecorderRunnable.run(AudioRecorder.java:123) 
01-29 16:38:58.831: E/AndroidRuntime(6775):  at java.lang.Thread.run(Thread.java:856) 
01-29 16:38:58.831: E/AndroidRuntime(6775): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load ilbc-codec: findLibrary returned null 
01-29 16:38:58.831: E/AndroidRuntime(6775):  at java.lang.Runtime.loadLibrary(Runtime.java:365) 
01-29 16:38:58.831: E/AndroidRuntime(6775):  at java.lang.System.loadLibrary(System.java:535) 
01-29 16:38:58.831: E/AndroidRuntime(6775):  at com.googlecode.androidilbc.Codec.<init>(Codec.java:16) 
01-29 16:38:58.831: E/AndroidRuntime(6775):  at com.googlecode.androidilbc.Codec.<clinit>(Codec.java:5) 
01-29 16:38:58.831: E/AndroidRuntime(6775):  ... 2 more 


01-29 11:01:15.772: E/AndroidRuntime(18705): FATAL EXCEPTION: main 
01-29 11:01:15.772: E/AndroidRuntime(18705): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rechargedoctor.android.app/com.quickblox.videochatsample.ui.ActivityVideoChat}: java.lang.IllegalStateException: startRecording() called on an uninitialized AudioRecord. 
01-29 11:01:15.772: E/AndroidRuntime(18705): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1959) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1984) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at android.app.ActivityThread.access$600(ActivityThread.java:126) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1150) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at android.os.Looper.loop(Looper.java:137) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at android.app.ActivityThread.main(ActivityThread.java:4456) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at java.lang.reflect.Method.invokeNative(Native Method) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at java.lang.reflect.Method.invoke(Method.java:511) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at dalvik.system.NativeStart.main(Native Method) 
01-29 11:01:15.772: E/AndroidRuntime(18705): Caused by: java.lang.IllegalStateException: startRecording() called on an uninitialized AudioRecord. 
01-29 11:01:15.772: E/AndroidRuntime(18705): at android.media.AudioRecord.startRecording(AudioRecord.java:534) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at com.quickblox.module.videochat.core.AudioRecorder$AudioRecorderRunnable.initRecorder(AudioRecorder.java:97) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at com.quickblox.module.videochat.core.AudioRecorder$AudioRecorderRunnable.<init>(AudioRecorder.java:75) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at com.quickblox.module.videochat.core.AudioRecorder.startAudioRecorder(AudioRecorder.java:31) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at com.quickblox.module.videochat.core.service.QBVideoChatService.startVideoChat(QBVideoChatService.java:93) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at com.quickblox.videochatsample.ui.ActivityVideoChat.initViews(ActivityVideoChat.java:69) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at com.quickblox.videochatsample.ui.ActivityVideoChat.onCreate(ActivityVideoChat.java:40) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at android.app.Activity.performCreate(Activity.java:4465) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
01-29 11:01:15.772: E/AndroidRuntime(18705): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1923) 
01-29 11:01:15.772: E/AndroidRuntime(18705): ... 11 more 

回答

0

首先檢查,如果你複製機庫到您的項目。比如,如果您遇到其他錯誤,請不要將示例源複製到您的項目中,而是嘗試加載和運行視頻聊天示例源,您可以在這裏找到它們。https://github.com/QuickBlox/Sample-VideoChat-android

+0

我在嘗試運行示例代碼時也遇到同樣的錯誤。它在你的最後工作正常嗎?在我的身邊,我聽到了糟糕的音頻質量。視頻聊天也在不同的位置關閉了以上的錯誤。 –

1

只需複製libs/armeabi/libilbc-codec從Sample-VideoChat-android項目文件到您的新項目。一切都應該正常工作。