Я работаю над проектом, где я сохраняю скриншот в WebView. Уровень API - 21. На нормальной домашней странице он работает совершенно нормально, но когда я нахожусь на YouTube и просматриваю видео, видеоплеер возвращается как черный прямоугольник. Я хочу сделать снимок экрана, когда пользователь коснется экрана.Сделайте снимок экрана видео в webview android
Когда я снимаю снимок с Power & Кнопка громкости работает отлично. Есть ли намерение, которое берет такой скриншот? В идеале, скриншот будет содержать только веб-просмотр, но если это весь экран, я тоже могу работать с этим.
Любая помощь очень ценится.
Cheers,
Toby
Edit: некоторые из моего кода
View rootView;
ValueCallback<String> callback = new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
category1.setText(value);
}
};
String root = android.os.Environment.getExternalStoragePublicDirectory
(Environment.DIRECTORY_DCIM).toString(), filename, time, puretime, movementType = ""; //movementType is set according to MotionEvent.getAction()
File myDir = new File(root + "/saved_files/")
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
rootView = findViewById(android.R.id.content).getRootView();
rootView.setDrawingCacheEnabled(true);
}
public class MyView extends View {
public MyView(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
calendar = Calendar.getInstance();
time = String.format("%02d:%02d:%02d.%03d", calendar.get(Calendar.HOUR_OF_DAY),
calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND),
calendar.get(Calendar.MILLISECOND));
puretime = String.format("%02d%02d%02d%03d", calendar.get(Calendar.HOUR_OF_DAY),
calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND),
calendar.get(Calendar.MILLISECOND));
if (movementType.equals("down")) {
try {
filename = puretime + ".xml";
webView.saveWebArchive(myDir+filename, false, callback);
} catch (Exception e) {
e.printStackTrace();
}
}
invalidate();
return true;
}
edit2:
по-видимому, проблема для черных прямоугольников является то, что элементы, как видео обрабатываются gpu и для «нормального» моментального снимка для работы программы необходимо будет вычислить каждый кадр, который слишком много работает.
Вы решили эту проблему? –
Нет, к сожалению, пока нет. – tobyUCT