Встраивание YouTube живой эфир в приложение для Android - PullRequest
0 голосов
/ 19 ноября 2018

Я встраиваю прямую трансляцию YouTube с помощью веб-просмотра в моем приложении для Android. Я использую 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");
    }
}

Ответы [ 3 ]

0 голосов
/ 19 ноября 2018

Другой вариант - использовать YouTubePlayerView

0 голосов
/ 24 ноября 2018

Вы можете использовать этот плеер для воспроизведения живого видео на YouTube в приложении Android: android-youtube-player .

Это эквивалентно использованию проигрывателя IFrame в WebView, но лучше.

Здесь - документация о живом видео.

0 голосов
/ 19 ноября 2018

Это iFrame, который работал для меня. Вам просто нужно передать layout_width из webview как 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);
...