【问题标题】:Embedding YouTube live stream in android application在 Android 应用程序中嵌入 YouTube 直播
【发布时间】:2019-04-21 11:07:55
【问题描述】:

我正在我的 Android 应用中使用 webview 嵌入 youtube 直播。我也在使用iframe。有没有办法可以根据屏幕大小设置视频播放器的大小。

 public class WebViewPlayer extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view_player);

        String frameVideo = "<html><body>Youtube video .. <br> <iframe width=\"400\" height=\"290\" src=\"https://www.youtube.com/embed/live_stream?channel=UCYn0pQcA8IMxk4cDFzlBF2w&autoplay=1\" frameborder=\"0\" allowfullscreen=\"true\"></iframe></body></html>";

        WebView webView = (WebView)findViewById(R.id.webview);
        webView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return false;
            }
        });
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webView.loadData(frameVideo, "text/html", "utf-8");
    }
}

【问题讨论】:

    标签: android iframe webview youtube


    【解决方案1】:

    这是对我有用的 iFrame。您只需将webviewlayout_width 传递为match_parent 并修复layout_height。 iFrame 还包含一个脚本,如果不需要,您可以将其删除。如果这对您有帮助,请告诉我。

    iframe

    "<html><body style='margin:0px;padding:0px;'><script type='text/javascript' " +
    "src='http://www.youtube.com/iframe_api'></script><script type='text/javascript'>" +
    "function onYouTubeIframeAPIReady(){ytplayer=new YT.Player('playerId'," +
    "{events:{onReady:onPlayerReady}})}function onPlayerReady(a){a.target.playVideo();}"+
    "</script>Youtube video .. <br><iframe id='playerId' type='text/html' width='100%' height='100%' " +
    "https://www.youtube.com/embed/live_stream?channel=UCYn0pQcA8IMxk4cDFzlBF2w&autoplay=1' frameborder='0' allowfullscreen></body></html>"
    
    webview.loadDataWithBaseURL(null, frameVideo, "text/html", "utf-8", null);
    

    【讨论】:

    • 实际上我的代码根本没有播放视频:(我只是得到一个空白的白屏
    • @PrashantLuhar 我已经编辑了答案。您可以使用loadDataWithBaseUrl 而不是loadData。这对我有用,如果不适合你,那么我将分享其他内容。
    • loadDataWithBaseUrl 不能正常工作:\ 我不知道是什么错误。
    • @PrashantLuhar 实际上webview 是关于反复试验的。尝试添加此webview.setWebChromeClient(new WebChromeClient());
    【解决方案2】:

    您可以使用此播放器在您的 Android 应用中播放 YouTube 直播视频:android-youtube-player

    相当于在WebView中使用IFrame播放器,但更好。

    Here 是关于直播视频的文档。

    【讨论】:

      【解决方案3】:

      其他选项是使用YouTubePlayerView

      【讨论】:

      • YouTubePlayerView 不支持直播。我尝试过这个。直播视频码不断变化,无法使用
      猜你喜欢
      • 2017-06-17
      • 1970-01-01
      • 2017-09-22
      • 1970-01-01
      • 2013-04-08
      • 2019-05-14
      • 2013-06-08
      • 2011-03-15
      相关资源
      最近更新 更多