【问题标题】:Android video embeddingAndroid 视频嵌入
【发布时间】:2011-12-02 05:36:40
【问题描述】:

我有一个从网页中获取一些文本并将其显示在屏幕上的应用程序。我想在文本之后放一段来自网络的视频。我怎么能那样做?如果我喜欢下面的代码,应用程序就会崩溃(空指针异常)。

我的代码:

LinearLayout tt= (LinearLayout)findViewById(R.id.kiu);
WebView webview;
tt.addView(fin); // fin is the TextView


        webview.getSettings().setJavaScriptEnabled(true);
        webview.loadUrl("http://www.youtube.com/embed/j4Wmjl7jxQo");
        tt.addView(webview);

main.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:scrollbars="vertical"

    android:background="#FFFFFF"

    >
<LinearLayout
android:id="@+id/kiu"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="0dp">

  </LinearLayout>
</ScrollView>

我不知道该怎么办.. 我希望我的应用显示this 而不是this

【问题讨论】:

    标签: android video request embed


    【解决方案1】:

    您应该发布异常中的堆栈跟踪。并以某种方式突出显示它指向的那条线。但在我脑海中,我注意到的是:

        webview = (WebView) findViewById(R.id.webview);
        ...
        tt.addView(webview);
    

    findViewById(id) 将返回 null,除非视图已经在屏幕上。您的 xml 布局中似乎没有 WebView(我假设这是执行此代码时当前在屏幕上的那个)。由于您没有其中一个 findViewById 将返回 null 给您,当您尝试使用一种方法时,在下一行您将获得一个空指针。

    基本上你有几个选择,但你不需要 findViewById 和 .addView(),你只需要一个或另一个。

    您可以:

    用 WebView 构造函数替换 webview = (WebView) findViewById(R.id.webview);,如下所示:webview = new WebView(this);

    或者

    你可以在你的xml中添加一个WebView,让findViewById保持现在的状态,但取出tt.addView(webview);

    另外请注意,由于您在 web 视图中显示 youtube 页面,因此用户将看到整个页面,而不仅仅是全屏电影。而且它不会立即开始,他们必须按下开始按钮才能开始。如果您正在寻找可以自动播放视频而不显示其他任何内容的内容,您需要VideoView

    Here is a fairly straight forward example of VideoView in action 您只需将您的网址粘贴到路径变量中。虽然我不确定它是否知道如何解码 youtube url。

    【讨论】:

    • 如果我在 xml 中创建 webview,当我输入包含文本的活动时,我会自动定向到 youtube。我想将视频嵌入那里,当我单击它时,将被重定向到页面。你能告诉我该怎么做吗?
    • 你会想要第一个选项。摆脱 xml 中的 webview,摆脱 findViewById() 调用,只需使用 webview = new WebView(this);并把 tt.addView(webview);在你调用 loadUrl() 之后
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 2020-07-02
    • 2021-12-04
    • 2012-06-25
    • 1970-01-01
    相关资源
    最近更新 更多