• android


    dpi

    dpi =√(horizontal²+vertical²)/diagonal  屏幕分辨率(px)  屏幕大小(英寸)

    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);//获取屏幕尺寸信息
    currnetDensity = (int)( metrics.density * 160 );//dpi

    2017/11/10 01:07 明天继续看

    ijkplayer  介绍http://blog.csdn.net/u010987039/article/details/52301077

    分割线————————————————————————————————————————————————————

    package com.example.jay.com.trtsp;
    
    import android.content.Context;
    import android.media.MediaPlayer;
    import android.os.Bundle;
    import android.os.SystemClock;
    import android.provider.Settings;
    import android.support.annotation.NonNull;
    import android.support.annotation.StringDef;
    import android.support.design.widget.BottomNavigationView;
    import android.support.v7.app.AppCompatActivity;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    import android.widget.Button;
    import android.widget.Toast;
    import android.os.Handler;
    
    import android.app.Activity;
    import android.net.Uri;
    import android.os.Bundle;
    import android.os.Environment;
    import android.widget.MediaController;
    import android.widget.VideoView;
    
    import android.graphics.Bitmap;
    import android.view.KeyEvent;
    import android.view.ViewGroup;
    import android.webkit.WebChromeClient;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    import android.webkit.JavascriptInterface;
    import android.view.ViewGroup.LayoutParams;
    import android.util.DisplayMetrics;
    
    import javax.xml.transform.ErrorListener;
    
    
    public class MainActivity extends AppCompatActivity {
    
        private TextView mTextMessage;
        private VideoView videoView ;
        private Handler handler=null;
        private Context context;
        private Button btn;
    
        WebView mwebView;
        WebSettings mWebSettings;
        TextView beginLoading,endLoading,loading,mtitle;
        private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
                = new BottomNavigationView.OnNavigationItemSelectedListener() {
    
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.navigation_home:
                        mTextMessage.setText(R.string.title_home);
                        return true;
                    case R.id.navigation_dashboard:
                        mTextMessage.setText(R.string.title_dashboard);
                        return true;
                    case R.id.navigation_notifications:
                        mTextMessage.setText(R.string.title_notifications);
                        return true;
                }
                return false;
            }
    
        };
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    
            mwebView = (WebView) findViewById(R.id.webView1);
            beginLoading = (TextView) findViewById(R.id.text_beginLoading);
            endLoading = (TextView) findViewById(R.id.text_endLoading);
            loading = (TextView) findViewById(R.id.text_Loading);
            mtitle = (TextView) findViewById(R.id.title);
            btn = (Button) findViewById(R.id.button);
            handler=new Handler();
            //初始化videobox隐藏
            final VideoView videoView = (VideoView)findViewById(R.id.videoView);
    //        videoView.setlistener
            LinearLayout videoBox = (LinearLayout)findViewById(R.id.videoBox);
            LayoutParams videoBoxStyle = videoBox.getLayoutParams();
            LinearLayout webViewBox = (LinearLayout) findViewById(R.id.webViewBox);
            LayoutParams webViewBoxStyle = webViewBox.getLayoutParams();
            videoBox.setVisibility(View.GONE);
            webViewBox.setVisibility(View.VISIBLE);
    //        videoBoxStyle.width=0;
    //        videoBoxStyle.height=0;
    //        加载video控制器
    //        videoView.setMediaController(new MediaController(this));
            videoView.setOnInfoListener(new MediaPlayer.OnInfoListener() {
                @Override
                public boolean onInfo(MediaPlayer mp, int what, int extra) {
                    System.out.println(what);
                    System.out.println(extra);
                    return true;
    //                return false;
                }
            });
    
    //        webview相关设置
            mWebSettings = mwebView.getSettings();
    //        mwebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);
            mwebView.getSettings().setJavaScriptEnabled(true);
    
    //        mwebView.getSettings().setRenderPriority(RenderPriority.HIGH);
            mwebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);  //设置 缓存模式
            // 开启 DOM storage API 功能
            mwebView.getSettings().setDomStorageEnabled(true);
            //开启 database storage API 功能
            mwebView.getSettings().setDatabaseEnabled(true);
            //开启 Application Caches 功能
            mwebView.getSettings().setAppCacheEnabled(true);
            mwebView.getSettings().setBlockNetworkImage(false);
            mwebView.getSettings().setLoadsImagesAutomatically(true); //自动加载图片
            mwebView.getSettings().setAllowUniversalAccessFromFileURLs(true);//
    //        mwebView.getSettings().setPluginState(PluginState.OFF);
    //        获取屏幕相关信息
            DisplayMetrics metrics = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(metrics);
    
    //        webview导入需要显示的html文件
            mwebView.loadUrl("file:///android_asset/newdemo/index.html");
    //        添加js接口
            mwebView.addJavascriptInterface(new StartVideo(), "jsInterface");
            //设置不用系统浏览器打开,直接显示在当前webView
            mwebView.setWebViewClient(new WebViewClient() {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
                    System.out.println(mwebView);
                    view.loadUrl(url);
    
                    return true;
                }
            });
    
            //设置WebChromeClient类
            mwebView.setWebChromeClient(new WebChromeClient() {
                //获取网站标题
                @Override
                public void onReceivedTitle(WebView view, String title) {
                    System.out.println("标题在这里");
    //                mtitle.setText(title);
                }
                //获取加载进度
                @Override
                public void onProgressChanged(WebView view, int newProgress) {
                    System.out.println("这里是加载进度"+newProgress);
                }
            });
            //设置webViewClient类
            mwebView.setWebViewClient(new WebViewClient() {
                //设置加载前的函数
                @Override
                public void onPageStarted(WebView view, String url, Bitmap favicon) {
                    System.out.println("开始加载了");
    //                beginLoading.setText("开始加载了");
                }
    
                //设置结束加载函数
                @Override
                public void onPageFinished(WebView view, String url) {
    //                endLoading.setText("结束加载了");
    //                  addVideoListner();
                }
            });
    
    
        }
    
        //点击返回上一页面而不是退出浏览器
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK && mwebView.canGoBack()) {
                mwebView.goBack();
                return true;
            }
    
            return super.onKeyDown(keyCode, event);
        }
    
        //销毁webView
        @Override
        protected void onDestroy() {
            if (mwebView != null) {
                mwebView.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);
                mwebView.clearHistory();
    
                ((ViewGroup) mwebView.getParent()).removeView(mwebView);
                mwebView.destroy();
                mwebView = null;
            }
            super.onDestroy();
        }
    
    //    播放、停止视频功能
        private final class StartVideo {
            private Context context;
            @JavascriptInterface
            public void showToast(String text){
                Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
            }
            @JavascriptInterface
            public void showJsText(final String text){
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        mwebView.loadUrl("javascript:jsText('"+text+"')");
                    }
                });
            }
            @JavascriptInterface
            public void openVideo(String text) {
                final String thisText = text;
    
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        Button btn = (Button)findViewById(R.id.button);
    //                    LayoutParams btnStyle = btn.getLayoutParams();
                        final VideoView videoView = (VideoView)findViewById(R.id.videoView);
                        videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                            @Override
                            public void onCompletion(MediaPlayer mp) {
                                videoView.start();
                            }
                        });
    //                    LayoutParams videoStyle = videoView.getLayoutParams();
                        final LinearLayout videoBox = (LinearLayout)findViewById(R.id.videoBox);
                        final LayoutParams videoBoxStyle = videoBox.getLayoutParams();
                        final LinearLayout webViewBox = (LinearLayout) findViewById(R.id.webViewBox);
                        final LayoutParams webViewBoxStyle = webViewBox.getLayoutParams();
                        final DisplayMetrics metrics = new DisplayMetrics();
                        getWindowManager().getDefaultDisplay().getMetrics(metrics);
                        System.out.println("这里是获取的屏幕信息"+metrics);
                        //video展示,webview隐藏
    //                    videoBoxStyle.width=(int)metrics.density*360;
    //                    videoBoxStyle.height=(int)metrics.density*640;
    //                    webViewBoxStyle.width=0;
    //                    webViewBoxStyle.height=0;
                        webViewBox.setVisibility(View.GONE);
                        videoBox.setVisibility(View.VISIBLE);
    //                    videoView.setOnErrorListener();
    //                    videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    //                        @Override
    //                        public void onCompletion(MediaPlayer videoView) {
    //
    //                        }
    //                    });
    
                        String url = thisText;
                        Uri uri = Uri.parse(url);
                        videoView.setVideoURI(uri);
                        videoView.requestFocus();
                        videoView.start();
    //                    videoView.resume();
                        btn.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                System.out.println("stop");
    
    //                            videoBoxStyle.width=0;
    //                            videoBoxStyle.height=0;
                                videoBox.setVisibility(View.GONE);
                                webViewBox.setVisibility(View.VISIBLE);
                                System.out.println(videoBox);
                                System.out.println(videoBoxStyle.width);
    //                            webViewBoxStyle.width=(int)metrics.density*360;
    //                            webViewBoxStyle.height=(int)metrics.density*640;
                                System.out.println(webViewBox);
                                System.out.println(webViewBoxStyle.width);
                                videoView.stopPlayback();
    
                            }
                        });
    
                        Toast.makeText(getApplicationContext(), thisText, Toast.LENGTH_SHORT).show();
    
    
    
    //                    Toast.makeText(getApplicationContext(),, Toast.LENGTH_SHORT).show();
                        //        需要请求获取视频流地址
    
    //        videoView.setVideoPath("rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov");
    //                        dp px的转换
    //                    videoStyle.width=(int)metrics.density*314;
    //                    videoStyle.height=(int)metrics.density*176;
    //                    btnStyle.width=(int)metrics.density*123;
    //                    btnStyle.height =(int)metrics.density*67;
    
    //        videoView.setMediaController(new MediaController(this.));
    //                    videoView.setVisibility(View.VISIBLE);
    //                    webViewStyle.width=0;
    //                    webViewStyle.height=0;
    //                    webView.setVisibility(View.INVISIBLE);
    
    
                    }
                });
    
            }
            @JavascriptInterface
            public  void stopVideo(){
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        LinearLayout videoBox = (LinearLayout)findViewById(R.id.videoBox);
                        LayoutParams videoBoxStyle = videoBox.getLayoutParams();
                        LinearLayout webViewBox = (LinearLayout) findViewById(R.id.webViewBox);
                        LayoutParams webViewBoxStyle = videoBox.getLayoutParams();
                        DisplayMetrics metrics = new DisplayMetrics();
                        getWindowManager().getDefaultDisplay().getMetrics(metrics);
                        videoView.stopPlayback();
                        videoBoxStyle.width=0;
                        videoBoxStyle.width=0;
    //                    videoView.setVisibility(View.INVISIBLE);
                        webViewBoxStyle.width=(int)metrics.density*360;
                        webViewBoxStyle.height=(int)metrics.density*640;
                    }
                });
            }
    
        }
    //    private int convertDpToPixel(int dp) {
    //        DisplayMetrics displayMetrics = this.context.getResources().getDisplayMetrics();
    //        return (int)(dp*displayMetrics.density);
    //    }
    //
    //    private int convertPixelToDp(int pixel) {
    //        DisplayMetrics displayMetrics = this.context.getResources().getDisplayMetrics();
    //        return (int)(pixel/displayMetrics.density);
    //    }
    }

     http://blog.csdn.net/xipiaoyouzi/article/details/75315836?locationNum=4&fps=1

    android vlc

    开黑吗我亚索贼6
  • 相关阅读:
    JavaScript 将十进制数转换成格式类似于 0x000100 或 #000100 的十六进制数
    Java 从资源文件(.properties)中读取数据
    更改MySQL 5.7的数据库的存储位置
    PADS Layout VX.2.3 将PCB中的元器件封装保存到库
    怀疑安装MySQL之后,导致OrCAD Capture、Allegro就打不开
    Allegro PCB 转 PADS Layout 之后的修修补补
    Java 使用UDP传输一个小文本文件
    IntelliJ IDEA Commons IO环境搭建
    RestFul风格API(Swagger)--从零开始Swagger
    Spring容器的简单实现(IOC原理)
  • 原文地址:https://www.cnblogs.com/insight0912/p/7812171.html
Copyright © 2020-2023  润新知