有没有可能检查一个WebView是否正在播放视频,如果是的话,获取此视频的http://... .mp4/ URL以便下载?
我已经尝试过这段代码:
public void onLoadResource(WebView view, final String url){
super.onLoadResource(view, url);
if(url.endsWith(".mp4") & !url.contains(".jpg") & !url.contains(".png")){
AlertDialog.Builder video_downloaden = new AlertDialog.Builder(SearchActivity.this);
video_downloaden.setTitle("Video downloaden?");
video_downloaden.setMessage("Download Video?");
video_downloaden.setPositiveButton("YES", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
DownloadManager.Request request_video = new DownloadManager.Request(Uri.parse(url));
request_video.allowScanningByMediaScanner();
request_video.setVisibleInDownloadsUi(false);
DownloadManager downloadManager2 = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
request_video.setDestinationInExternalFilesDir(getApplicationContext(), DIRECTORY_DOWNLOADS, File.separator + ".Videos" + File.separator + "video" + video_number);
downloadManager2.enqueue(request_video);
Toast.makeText(SearchActivity.this,"Download started",Toast.LENGTH_LONG).show();
}
});
video_downloaden.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.cancel();
}
});
video_downloaden.show();
}
}
但是使用onLoadResource()
时,AlertDialog会一直显示,而且下载不总是有效...所以我的问题是,是否有其他机会检查WebView是否正在播放视频并获取视频网址?
@JavaScriptInterface
,因为Android Studio会提示:此处不允许注释。而且我不知道如何使用JavaScript(因为这是我第一次使用它)。当我复制这段代码时,我只得到错误。(例如view?.context?.assets?.let {
)那么val是什么意思呢?对不起,我的问题可能很愚蠢,但我是一个编程初学者... - Nils Beval
是在Kotlin
中使用的。请查看我的回答中的第二点。我链接了一个相同代码的Java
版本的网址。 - melJavaScript
获取视频 URL,但我从未尝试过。这个方案怎么样?创建一个标志(类似布尔类型变量,表示视频是否正在播放),在onLoadResources
方法中,只有在该标志为 false 时(视频未播放)才获取视频 URL。 - mel