Как играть в 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);