Aktualnie pracuję nad aplikacją z portretem orientacji ekranu i mam wideo w formacie HTML 5, które wymaga obsługi pełnoekranowej. Dodałem do Webview WebChromeClient, zastąpiłem kilka metod. Wszystko działa dobrze, gdy trzymam się orientacji portretowej, ale kiedy próbuję zmienić orientację na krajobraz, gdy przechodzę na pełny ekran, mam awarię. Jakaś wskazówka?Awaria wideo HTML 5 po przejściu na pełny ekran
Overrided metody:
public void onShowCustomView(View view, CustomViewCallback callback) {
super.onShowCustomView(view, callback);
if (mCustomViewContainer != null) {
callback.onCustomViewHidden();
return;
}
if(interfazWeb==null)
interfazWeb = (FragTabActivity) getActivity();
if (view instanceof FrameLayout) {
mCustomViewContainer = (FrameLayout) view;
mCustomViewCallback = callback;
interfazWeb.getCustomContentView().setVisibility(View.INVISIBLE);
interfazWeb.addContentView(mCustomViewContainer, new FrameLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT, Gravity.CENTER));
interfazWeb.setBackDelegate(new BackDelegate(){
public boolean shouldOverrideBackButton() {
if(mCustomViewCallback!=null){//first calling onHideCustomView()
onHideCustomView();
return true;
}
return false;
}
});
mCustomViewContainer.bringToFront();
//interfazWeb.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
}
@Override
public void onHideCustomView() {
// TODO Auto-generated method stub
if(interfazWeb==null)
interfazWeb = (FragTabActivity) getActivity();
if(mCustomViewContainer!=null){
ViewGroup parent = (ViewGroup) interfazWeb.getCustomContentView().getParent();
if(parent!=null){
parent.removeView(mCustomViewContainer);
interfazWeb.getCustomContentView().setVisibility(View.VISIBLE);
}
}
if(mCustomViewCallback!=null){
mCustomViewCallback.onCustomViewHidden();
mCustomViewCallback = null;
}
//interfazWeb.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
@Override
public Bitmap getDefaultVideoPoster() {
// TODO Auto-generated method stub
return Bitmap.createBitmap(1, 1, Config.ARGB_8888);
}
@Override
public View getVideoLoadingProgressView() {
// TODO Auto-generated method stub
return new ProgressBar((Context) getActivity());
}
Log mówi:
10-31 11:09:36.336: E/AndroidRuntime(8098): java.lang.NullPointerException
10-31 11:09:36.336: E/AndroidRuntime(8098): at android.webkit.HTML5VideoView.isPlaying(HTML5VideoView.java:122)
10-31 11:09:36.336: E/AndroidRuntime(8098): at android.webkit.HTML5VideoViewProxy$VideoPlayer.isPlaying(HTML5VideoViewProxy.java:253)
10-31 11:09:36.336: E/AndroidRuntime(8098): at android.webkit.HTML5VideoViewProxy.handleMessage(HTML5VideoViewProxy.java:402)
10-31 11:09:36.336: E/AndroidRuntime(8098): at android.os.Handler.dispatchMessage(Handler.java:99)
10-31 11:09:36.336: E/AndroidRuntime(8098): at android.os.Looper.loop(Looper.java:137)
10-31 11:09:36.336: E/AndroidRuntime(8098): at android.app.ActivityThread.main(ActivityThread.java:4758)
10-31 11:09:36.336: E/AndroidRuntime(8098): at java.lang.reflect.Method.invokeNative(Native Method)
10-31 11:09:36.336: E/AndroidRuntime(8098): at java.lang.reflect.Method.invoke(Method.java:511)
10-31 11:09:36.336: E/AndroidRuntime(8098): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
10-31 11:09:36.336: E/AndroidRuntime(8098): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-31 11:09:36.336: E/AndroidRuntime(8098): at dalvik.system.NativeStart.main(Native Method)
EDIT: Mam ten wiersz w moim manifeście:
android:configChanges="keyboardHidden|orientation|locale|screenLayout"
Czy możesz mi pomóc rozwiązać ten problem [Wydanie] (http://stackoverflow.com/questions/14156411/loading-youtube-video-through-i-ame-in-android-webview) – edwin
Mam dokładnie to samo problem, ale tylko w galaktyce S3, kiedy naciśniesz ponownie (aby wyjść z trybu pełnoekranowego) – Pauland
@Pauland Czy otrzymałeś rozwiązanie tego problemu? Otrzymuję również ten problem w S3. Możesz mi pomóc? – Noundla