ERR_CACHE_MISS ошибка при попытке воспроизвести видео YouTube на Android виртуальной машине - PullRequest
0 голосов
/ 02 августа 2020

Я изучаю Android Studio и хочу встроить видео YouTube с помощью WebView. Когда я запускаю приложение на моем Android виртуальном устройстве и нажимаю sh кнопку для воспроизведения видео, я получаю следующее сообщение: Веб-страница недоступна. Веб-страница в ... не может быть загружена, потому что: net :: ERR_CACHE_MISS.

Как я могу решить эту проблему?

activity_main. xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/counter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:text="PUSH IT!"
        app:layout_constraintEnd_toEndOf="@+id/buttonClear"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/counter" />

    <Button
        android:id="@+id/buttonClear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="16dp"
        android:text="CLEAR"
        app:layout_constraintBaseline_toBaselineOf="@+id/button"
        app:layout_constraintEnd_toEndOf="parent" />

    <Button
        android:id="@+id/buttonVideo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="PLAY"
        app:layout_constraintStart_toStartOf="@+id/button"
        app:layout_constraintTop_toBottomOf="@+id/button" />

    <WebView
        android:id="@+id/video"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/buttonVideo" />


</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity. java:

package com.viktorjava.mybuttonapp1;

import androidx.appcompat.app.AppCompatActivity;

import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.TextView;
import android.widget.VideoView;

public class MainActivity extends AppCompatActivity {

    private Integer counterint = 0;
    private WebView webView;


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

        Button button = (Button) findViewById(R.id.button);
        Button buttonClear = (Button) findViewById(R.id.buttonClear);
        Button buttonVideo = (Button) findViewById(R.id.buttonVideo);

        webView = (WebView) findViewById(R.id.video);
        webView.setWebChromeClient(new WebChromeClient());
        WebSettings ws = webView.getSettings();
        ws.setBuiltInZoomControls(true);
        ws.setJavaScriptEnabled(true);

        final TextView counter = findViewById(R.id.counter);

        final MediaController mediaController = new MediaController(this);

        View.OnClickListener listener = new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                counterint++;
                counter.setText(counterint.toString());
            }
        };

        View.OnClickListener clearListener = new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                counterint = 0;
                counter.setText(counterint.toString());
            }
        };

        View.OnClickListener videoListener = new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                webView.loadUrl("https://www.youtube.com/embed/SdnjROOeS4c");
            }
        };
        button.setOnClickListener(listener);
        buttonClear.setOnClickListener(clearListener);
        buttonVideo.setOnClickListener(videoListener);
    }
}
...