MjpegView与其他XML布局

时间:2014-04-27 03:41:35

标签: java android xml video-streaming mjpeg

我正在开发一个需要通过mjpeg获取Airdrone流的APP。

我正在使用this topic中的类。它适用于示例,但我需要在同一视图中添加一些其他元素,例如控制de airdrome的按钮。

示例代码:

@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

1 个答案:

答案 0 :(得分:1)

我弄明白我的问题是什么......

我试图这样做:

mv = (MjpegView) findViewById(R.id.mv);
setContentView(R.layout.activity_test);

得到了NullPointerException ..我改为:

setContentView(R.layout.activity_test);
mv = (MjpegView) findViewById(R.id.mv);

现在一切都像以前那样工作:)