Как играть в URL-адрес видео в веб-обозревателе Android

Я хочу воспроизвести видеоролик внутри своего веб-приложения приложения, но когда я запускаю приложение, оно показывает только белый экран. Я прочитал несколько сообщений об этом, и я использовал этот код, но видео не воспроизводится в веб-браузере, а запускает устройство, но мое требование не такое.

пожалуйста, помогите мне, если кто-то уже это сделал. мой код здесь: -

    WebView webView = (WebView) findViewById(R.id.myweb);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setPluginState(PluginState.ON);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webView.getSettings().setSupportMultipleWindows(true);
    webView.getSettings().setSupportZoom(true);
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setAllowFileAccess(true);
    webView.setWebViewClient(new WebViewClient() {

        @Override
        public void onPageFinished(WebView view, String url) {
            setProgressBarIndeterminateVisibility(false);
            super.onPageFinished(view, url);
        }
    });
    webView.loadUrl("http://download.wavetlan.com/SVV/Media/HTTP/H264/Talkinghead_Media/H264_test1_Talkinghead_mp4_480x360.mp4");
    webView.setVisibility(View.VISIBLE);

URL-адрес тестирования работает в браузере.

Ответы

Ответ 1

WebView webview = (WebView) findViewById(R.id.webView1);
    webview.setWebViewClient(new WebViewClient());
    webview.getSettings().setJavaScriptEnabled(true);
    webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webview.getSettings().setPluginState(WebSettings.PluginState.ON);
    webview.getSettings().setMediaPlaybackRequiresUserGesture(false);
    webview.setWebChromeClient(new WebChromeClient());
    webview.loadUrl("https://www.youtube.com");

также устанавливается в файл манифеста

 <application
    android:allowBackup="true"
    android:hardwareAccelerated="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

Ответ 2

Добавить webview.setWebChromeClient(new WebChromeClient()); и включить плагины для вашего видео:

  if (Build.VERSION.SDK_INT < 8) {
     webview.getSettings().setPluginsEnabled(true);
  }  
  else {
     webview.getSettings().setPluginState(PluginState.ON);
  }

Надеюсь это поможет.

Ответ 3

Вам нужно загрузить HTML-документ, в который встроено видео внутри него, а не непосредственно видео. Для воспроизведения встроенного видео в WebView с помощью <video> вы также должны убедиться, что аппаратное ускорение включено в вашем приложении (см. Http://developer.android.com/guide/topics/graphics/hardware-accel.html).

Ответ 4

Я знаю, что это старая проблема, у меня была такая же проблема несколько дней назад, и я занимался серфингом в интернете. Я нашел этот полный источник, который мне очень помог, и теперь я хочу поделиться с другими, может быть, могу помочь другим, таким как я..

https://github.com/cprcrack/VideoEnabledWebView

Ответ 5

Если кто-то попробовал другие, не работает, возможно, вы можете попробовать это:

 if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.LOLLIPOP){
        webview.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
    }

Ответ 6

Это может быть старый вопрос, но это работает:

    //Here Im loading the html file from disk
    String html_file = LoadData(file.getAbsolutePath());

    WebView myWebView = (WebView) view.findViewById(R.id.webView);
    myWebView.reload();
    myWebView.getSettings().setJavaScriptEnabled(true);
    myWebView.loadData(html_file, "text/html; charset="utf-8", "UTF-8");

Используйте видеоданные в формате base64 в качестве источника video:

//html_file
<video controls>
   <source type="video/mp4" src="data:video/webm;base64,MY_BASE64_ENCODED VIDEO_HERE">
</video>

Ответ 7

Нет, вы не можете воспроизводить видео по ссылке в этом случае. Для этого вы должны создать RTSP-соединение, затем вы можете воспроизводить видео через URL-адрес RTSP в Webview. Вы можете получить RTSP-соединение с сервера, такого как Youtube.

Ответ 8

Попробуй это.

{
    WebSettings settings = webView.getSettings();
    settings.setJavaScriptEnabled(true);
    settings.setDomStorageEnabled(true);
    settings.setMinimumFontSize(10);
    settings.setLoadWithOverviewMode(true);
    settings.setUseWideViewPort(true);
    settings.setBuiltInZoomControls(true);
    settings.setDisplayZoomControls(false);
    webView.setVerticalScrollBarEnabled(false);         
    webView.loadDataWithBaseURL(null, vUrl, "text/html", "UTF-8", null);
}

Ответ 9

Я также застрял в этом вопросе. Я получил правильный ответ от сервера, но не смог воспроизвести видео. После долгого времени я нашел решение здесь. Возможно, в будущем эта ссылка будет недействительной. Итак, вот мой правильный код

Uri video = Uri.parse("Your link should be in this place "); 
mVideoView.setVideoURI(video); 

mVideoView.setZOrderOnTop(true); //Very important line, add it to Your code
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
    @Override 
    public void onPrepared(MediaPlayer mediaPlayer) {
   // here write another part of code, which provides starting the video
}}

Ответ 10

Для меня это было решением

settings.setDomStorageEnabled(true);