android - 为什么我的 YouTube 全屏崩溃了?

标签 android video android-fragments webview fullscreen

我是 android 新手,我第一次使用 webview、fragment、drawer...

我遇到的问题是,在视频中按全屏后我的代码我的应用程序崩溃了。 我不知道出了什么问题......

WebViewFragmentVideos

    public class WebViewFragmentVideos extends Fragment {
    WebView webView;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        // Retrieving the currently selected item number
        int position = getArguments().getInt("position");

        String url = getArguments().getString("url");

        // List of rivers
        String[] menus = getResources().getStringArray(R.array.Websitesenglish);

        // Creating view corresponding to the fragment
        View v = inflater.inflate(R.layout.fragment_layout, container, false);

        // Updating the action bar title
        getActivity().getActionBar().setTitle(menus[position]);

        //Initializing and loading url in webview
        webView = (WebView)v.findViewById(R.id.webView);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setLoadsImagesAutomatically(true);
        webView.getSettings().setBuiltInZoomControls(true);
        webView.loadUrl(url);
        webView.setWebChromeClient(new MyChromeClient());

        webView.setWebViewClient(new WebViewClient(){


            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url){
              view.loadUrl(url);
              return true;
            }

        });
        return v;}

class MyChromeClient extends WebChromeClient {
    String url = getArguments().getString("url");
    @Override
    public void onShowCustomView(View view, CustomViewCallback callback) {

        Intent intent = new Intent(null, LandVideoAct.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.putExtra("video", url);
        startActivity(intent); 
}
    }
        }

土地视频法案

    public class LandVideoAct extends Activity {
    WebView webView, fullweb;
    String url = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setTheme(android.R.style.Theme_Light_NoTitleBar_Fullscreen);
        setContentView(R.layout.landfull);
        url = getIntent().getStringExtra("video") + "?fs=1";
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        webView = (WebView) findViewById(R.id.fullwebview);

        if (Build.VERSION.SDK_INT < 8) {
            webView.getSettings().setPluginsEnabled(true);
        } else {
            webView.getSettings().setPluginState(PluginState.ON);
        }
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onShowCustomView(View view, CustomViewCallback callback) {
                LandVideoAct.this.finish();
            }
        });
        webView.loadUrl(url);

}}

希望各位能帮我解决我的问题。 谢谢!!

最佳答案

这行代码在android中是不允许的。

Intent intent = new Intent(null, LandVideoAct.class);

解决你的崩溃问题。主要是因为上面一行代码。当webview中的视频全屏被调用时,它会调用android系统,即onShowCustomView(View view, CustomViewCallback callback)。上面的代码行失败的地方。 而不是使用 Activity 上下文或应用程序上下文

 Intent intent = new Intent(context, LandVideoAct.class);

关于android - 为什么我的 YouTube 全屏崩溃了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23596071/

相关文章:

java - 如果页面已经加载,如何使 viewpager 不再加载页面

android - 恢复堆栈中不是最顶层的 fragment

android - Android 上未创建 USB 摄像头节点

java - 在 php 中登录到服务器端时在 android 中进行 session 处理

java - 在 Activity 之间来回传递数据

JavaScript == $0 前所未见

java - 用 Java 编码视频

iPhone短动画: video or image sequence?

android - 处理android的backstack

安卓 : How to create a bitmap with exact physical size in inches