我正在开发一个APP,需要通过mjpeg获取Airdrone的流。
我正在使用 this topic 中的类。它非常适合该示例,但我需要向同一 View 添加一些其他元素,例如控制机场的按钮。
示例代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
mv = new MjpegView(this);
setContentView(mv);
...
我正在尝试做但不起作用......
...
mv = (MjpegView) findViewById(R.id.mv);
setContentView(R.layout.activity_test);
...
还有我的布局 xml...
<?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:layout_width="fill_parent"
tools:context="com.gabilheri.rosbridgecontroller.app.TestActivity"
android:layout_height="fill_parent"
android:id="@+id/mainLayout">
<com.gabilheri.rosbridgecontroller.app.VideoStreamClasses.MjpegView
android:id="@+id/mv"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</FrameLayout>
这是 LOGCAT 错误:
04-26 22:40:19.521 2229-2229/com.gabilheri.rosbridgecontroller.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.gabilheri.rosbridgecontroller.app, PID: 2229
java.lang.NullPointerException
at com.gabilheri.rosbridgecontroller.app.TestActivity$DoRead.onPostExecute(TestActivity.java:86)
at com.gabilheri.rosbridgecontroller.app.TestActivity$DoRead.onPostExecute(TestActivity.java:59)
at android.os.AsyncTask.finish(AsyncTask.java:632)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5184)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1015)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)
at dalvik.system.NativeStart.main(Native Method)
这是 onPost 执行方法中的几行:
mv.setSource(result); //Line 86
mv.setDisplayMode(MjpegView.SIZE_BEST_FIT); // Line 87
mv.showFps(true); // Line 88
大家有什么想法吗?谢谢你! :D
最佳答案
我明白了我的问题是什么......
我试图做:
mv = (MjpegView) findViewById(R.id.mv);
setContentView(R.layout.activity_test);
并且得到一个 NullPointerException..我更改为:
setContentView(R.layout.activity_test);
mv = (MjpegView) findViewById(R.id.mv);
现在一切都按预期运行了:)
关于java - MjpegView 与其他 XML 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23319128/