java - MjpegView 与其他 XML 布局

标签 java android xml video-streaming mjpeg

我正在开发一个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/

相关文章:

android - 静态 fragment

android - 如何衡量 React Native Android 中发布版本的启动性能?

java - 为什么我的 ImageView 上的前景没有在背景上正确居中?

C#2.0逐行读取并复制Xml文件?

java - 注释类 "public static @interface"中的静态关键字是什么?

java - 如何将 "Remember Me"身份验证与 Spring Security 和 LDAP 结合使用?

安卓模拟器与手机不匹配

java - Java 中的自签名证书 - 签署 XML 文件

java - eclipse Spring MVC 4 +Hibernate 和 MySQL + Tiles.xml 中的 HTTP 状态 404

java - Runtime.getRuntime().availableProcessors()