Tôi có một VideoView
bên trong hộp thoại tùy chỉnh và tôi đang tạo bộ điều khiển phương tiện cho VideoView
khi đang di chuyển và gán nó đến VideoView
trong mã, tuy nhiên bộ điều khiển không 't thực sự xuất hiện trên video - nó xuất hiện phía sau hộp thoại! Bất kỳ ý tưởng làm thế nào để có được bộ điều khiển trên video?Android - MediaController của VideoView trong hộp thoại xuất hiện phía sau hộp thoại
Tôi tạo ra một lớp helper thoại tĩnh để giúp xây dựng các hộp thoại tùy chỉnh:
public class DialogHelper {
public static Dialog getVideoDialog(Context context, Uri videoLocation, boolean autoplay) {
final Dialog dialog = getBaseDialog(context,true, R.layout.dialog_video);
((Activity)context).getWindow().setFormat(PixelFormat.TRANSLUCENT);
final VideoView videoHolder = (VideoView) dialog.findViewById(R.id.video_view);
videoHolder.setVideoURI(videoLocation);
//videoHolder.setRotation(90);
MediaController mediaController = new MediaController(context);
videoHolder.setMediaController(mediaController);
mediaController.setAnchorView(videoHolder);
videoHolder.requestFocus();
if(autoplay) {
videoHolder.start();
}
videoHolder.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
dialog.dismiss();
}
});
return dialog;
}
/**
* Creates a simple dialog box with as many buttons as you want
* @param context The context of the dialog
* @param cancelable whether the dialog can be closed/cancelled by the user
* @param layoutResID the resource id of the layout you want within the dialog
*
* @return the dialog
*/
public static Dialog getBaseDialog(Context context, boolean cancelable, int layoutResID) {
Dialog dialog = new Dialog(context, R.style.Theme_PopUpDialog);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setCancelable(cancelable);
dialog.setCanceledOnTouchOutside(cancelable);
dialog.setContentView(layoutResID);
return dialog;
}
}
Vì vậy, trong tôi Activity
tôi chỉ có này để tạo thoại của tôi:
Dialog videoDialog = DialogHelper.getVideoDialog(context, Uri.parse("http://commonsware.com/misc/test2.3gp"), true);
videoDialog.show();