Android VideoView: просмотр видео в диалоговом окне намного темнее

Привет всем, у меня есть проблема с вложением просмотра видео в диалоговое окно

Все работает отлично, за исключением того, что видео, отображаемое в диалоговом окне, намного темнее, если отображаться в остальной части активности

есть идеи ?

Вот какой код

button1main.setOnClickListener(new OnClickListener() { public VideoView videoView = null; @Override public void onClick(View v) { //set up dialog Dialog dialog = new Dialog(CustomDialog.this); dialog.setContentView(R.layout.maindialog); //dialog.setTitle("This is my custom dialog box"); dialog.setCancelable(true); this.videoView = (VideoView) dialog.findViewById(R.id.video); VideoPlayer vp = new VideoPlayer(this.videoView, null); vp.playVideo(); //set up button Button button = (Button) dialog.findViewById(R.id.Button01); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); //now that the dialog is set up, it's time to show it dialog.show(); } }); 

Solutions Collecting From Web of "Android VideoView: просмотр видео в диалоговом окне намного темнее"

Кажется, что VideoView потому что создается за окном. Решение Джейсона Роджерса работает, но означает, что область за диалоговом окне не станет тусклой.

я использовал

 mVideoView.setZOrderOnTop(true); 

Чтобы вывести VideoView на передний VideoView , чтобы он не ослабел, но все же за диалогом будет.

Я действительно нашел решение этого (или, по крайней мере, в моем случае)

Это кажется его ошибкой от android, где Video View создается за диалогом, и когда открывается диалоговое окно, он уменьшает фоновые представления, включая видео

«Быстрое исправление», которое я применил,

 WindowManager.LayoutParams a = dialog.getWindow().getAttributes(); a.dimAmount = 0; dialog.getWindow().setAttributes(a); 

Они могут быть лучшим решением, например, передать контекст диалогового окна вместо использования одного и того же контекста для создания диалога и просмотра видео (я проверю позже, если я получу время)

В то время как предлагаемый пространственный объект работает, единственная проблема заключается в том, что если вы когда-либо захотите установитьZOrderOnTop на false после установки его в true. Кажется, что когда-то оно установлено, это всегда верно.

Недавно я столкнулся с одной и той же проблемой (видеозвонок в диалоговом окне) и тем, как я ее исправил, неохотно, должен был очистить FLAG_DIM_BEHIND, чтобы видео было «ярким». Я получил тусклый эффект, просто сделав мой диалог полноэкранным и установив фон в «тусклый цвет», если это имеет смысл.

Дополнительная информация: Что касается медиа-контроллера, я не мог найти способ довести его до вершины диалога. Я закончил создание настраиваемого макета средств управления носителями и разместил его поверх видеоизображения. В этом контексте важно, что вызов setZOrderOnTop помешает вам помещать медиа-контроллер поверх видеорекламы.

Надеюсь, это имеет смысл и помогает кому-то.