如何在Android TV上实现TvView?

问题描述 投票:5回答:1

目标

要创建显示在WebView顶部的缩小的TvView这是专门用于直播电视。(我已经看到许多解决streaming内容的解决方案,但这是针对通过同轴电缆传送的视频的。)

Layout

我现在在哪里

WebView部分工作正常,并且我了解到需要一个[[RelativeLayout才能对视图进行分层。另外,似乎无法识别TvView,所以我猜测可能需要使用SurfaceView

activity_main.xmlCode example

MainActivity.java

enter image description here问题

我已经看过

TvInput

示例应用程序,但这太过分了。我不是在尝试重新创建TvInput服务,而只是利用现有框架。
    是否可以简单地调用已经在Android设备上的现有电视服务,并在视图中显示它?
  • 如果可能[[是
,如何完成?
  • 如果可能[[不可能,实现它的最简单方法是什么? (存储库链接会很棒。)
  • 我已经四处搜寻答案,但似乎找不到任何东西。预先感谢您的协助。
  • 文本格式的代码

    根据


    tung]的要求>。

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main_browse_fragment" android:name="com.company.app.MainFragment" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.company.app.MainActivity" tools:deviceIds="tv" tools:ignore="MergeRootFrame" > <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" /> <TvView android:id="@+id/TvView" android:layout_width="816dp" android:layout_height="404dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="25dp" /> </RelativeLayout >

    MainActivity.java

    package com.company.app;
    
    import android.annotation.SuppressLint;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.media.tv.TvView;
    import android.view.View;
    import android.view.Window;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    import android.webkit.WebSettings;
    
    public class MainActivity extends Activity {
        private WebView mWebView;
        private TvView mTvView;
        private WebSettings mWebSettings;
    
        @SuppressLint("SetJavaScriptEnabled")
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            getWindow().requestFeature(Window.FEATURE_NO_TITLE);
            mWebView = new WebView(this);
            mWebSettings = mWebView.getSettings();
            mWebSettings.setJavaScriptEnabled(true);
            mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
            mWebView.loadUrl("http://10.28.98.150:1000/");
            mWebView.setWebViewClient(new WebViewClient() {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    view.loadUrl(url);
                    return true;
                }
            });
            this.setContentView(mWebView);
            mTvView = new TvView(this );
            mTvView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
            this.setContentView(mTvView);
        }
    
        @Override
        public boolean onKeyDown(final int keyCode, final KeyEvent event) {
            if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
                mWebView.goBack();
                return true;
            }
            return super.onKeyDown(keyCode, event);
        }
    }
    

    目标要创建在WebView顶部显示的精简TvView。这是专门用于直播电视的。 (我已经看到了许多解决流内容的解决方案,但这是针对视频'...

  • java android android-webview android-tv television
    1个回答
    0
    投票
    如果您将这些信息传递给tvview,它将开始播放。
    © www.soinside.com 2019 - 2024. All rights reserved.