Search in sources :

Example 16 with VideoView

use of android.widget.VideoView in project ABPlayer by winkstu.

the class MainActivity method findViews.

private void findViews() {
    mMediaController = findViewById(R.id.media_controller);
    mBtnRotate = (Button) findViewById(R.id.rotate);
    mBtnHideDanmaku = (Button) findViewById(R.id.btn_hide);
    mBtnShowDanmaku = (Button) findViewById(R.id.btn_show);
    mBtnPauseDanmaku = (Button) findViewById(R.id.btn_pause);
    mBtnResumeDanmaku = (Button) findViewById(R.id.btn_resume);
    mBtnSendDanmaku = (Button) findViewById(R.id.btn_send);
    mBtnSendDanmakus = (Button) findViewById(R.id.btn_send_danmakus);
    mBtnRotate.setOnClickListener(this);
    mBtnHideDanmaku.setOnClickListener(this);
    mMediaController.setOnClickListener(this);
    mBtnShowDanmaku.setOnClickListener(this);
    mBtnPauseDanmaku.setOnClickListener(this);
    mBtnResumeDanmaku.setOnClickListener(this);
    mBtnSendDanmaku.setOnClickListener(this);
    mBtnSendDanmakus.setOnClickListener(this);
    // VideoView
    VideoView mVideoView = (VideoView) findViewById(R.id.videoview);
    // DanmakuView
    mDanmakuView = (IDanmakuView) findViewById(R.id.sv_danmaku);
    DanmakuGlobalConfig.DEFAULT.setDanmakuStyle(DanmakuGlobalConfig.DANMAKU_STYLE_STROKEN, 3).setDuplicateMergingEnabled(false);
    if (mDanmakuView != null) {
        mParser = createParser(this.getResources().openRawResource(R.raw.comments));
        mDanmakuView.setCallback(new Callback() {

            @Override
            public void updateTimer(DanmakuTimer timer) {
            }

            @Override
            public void prepared() {
                mDanmakuView.start();
            }
        });
        mDanmakuView.prepare(mParser);
        mDanmakuView.showFPS(true);
        mDanmakuView.enableDanmakuDrawingCache(true);
        ((View) mDanmakuView).setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                mMediaController.setVisibility(View.VISIBLE);
            }
        });
    }
    if (mVideoView != null) {
        mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

            @Override
            public void onPrepared(MediaPlayer mediaPlayer) {
                mediaPlayer.start();
            }
        });
        // mVideoView.setVideoPath(Environment.getExternalStorageDirectory() + "/1.flv");
        mVideoView.setVideoURI(Uri.parse("http://us-chicago.acgvideo.com/e/e9/3444659.mp4?expires=1429119900&ssig=o8fAECKGmZkIsdZE31EYOQ&o=401361084&rate=0"));
    }
}
Also used : Callback(master.flame.danmaku.controller.DrawHandler.Callback) VideoView(android.widget.VideoView) DanmakuTimer(master.flame.danmaku.danmaku.model.DanmakuTimer) View(android.view.View) VideoView(android.widget.VideoView) DanmakuSurfaceView(master.flame.danmaku.ui.widget.DanmakuSurfaceView) IDanmakuView(master.flame.danmaku.controller.IDanmakuView) MediaPlayer(android.media.MediaPlayer)

Example 17 with VideoView

use of android.widget.VideoView in project DanmakuFlameMaster by Bilibili.

the class UglyViewCacheStufferSampleActivity method findViews.

private void findViews() {
    mMediaController = findViewById(R.id.media_controller);
    mBtnRotate = (Button) findViewById(R.id.rotate);
    mBtnHideDanmaku = (Button) findViewById(R.id.btn_hide);
    mBtnShowDanmaku = (Button) findViewById(R.id.btn_show);
    mBtnPauseDanmaku = (Button) findViewById(R.id.btn_pause);
    mBtnResumeDanmaku = (Button) findViewById(R.id.btn_resume);
    mBtnSendDanmaku = (Button) findViewById(R.id.btn_send);
    mBtnSendDanmakuTextAndImage = (Button) findViewById(R.id.btn_send_image_text);
    mBtnSendDanmakus = (Button) findViewById(R.id.btn_send_danmakus);
    mBtnRotate.setOnClickListener(this);
    mBtnHideDanmaku.setOnClickListener(this);
    mMediaController.setOnClickListener(this);
    mBtnShowDanmaku.setOnClickListener(this);
    mBtnPauseDanmaku.setOnClickListener(this);
    mBtnResumeDanmaku.setOnClickListener(this);
    mBtnSendDanmaku.setOnClickListener(this);
    mBtnSendDanmakuTextAndImage.setOnClickListener(this);
    mBtnSendDanmakus.setOnClickListener(this);
    // VideoView
    VideoView mVideoView = (VideoView) findViewById(R.id.videoview);
    // DanmakuView
    // 设置最大显示行数
    HashMap<Integer, Integer> maxLinesPair = new HashMap<Integer, Integer>();
    // 滚动弹幕最大显示5行
    maxLinesPair.put(BaseDanmaku.TYPE_SCROLL_RL, 5);
    // 设置是否禁止重叠
    HashMap<Integer, Boolean> overlappingEnablePair = new HashMap<Integer, Boolean>();
    overlappingEnablePair.put(BaseDanmaku.TYPE_SCROLL_RL, true);
    overlappingEnablePair.put(BaseDanmaku.TYPE_FIX_TOP, true);
    mDanmakuView = (IDanmakuView) findViewById(R.id.sv_danmaku);
    mContext = DanmakuContext.create();
    mIconWidth = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30f, getResources().getDisplayMetrics());
    mContext.setDanmakuBold(true);
    mContext.setDanmakuStyle(IDisplayer.DANMAKU_STYLE_STROKEN, 3).setDuplicateMergingEnabled(false).setScrollSpeedFactor(1.2f).setScaleTextSize(1.2f).setCacheStuffer(new ViewCacheStuffer<MyViewHolder>() {

        @Override
        public MyViewHolder onCreateViewHolder(int viewType) {
            Log.e("DFM", "onCreateViewHolder:" + viewType);
            return new MyViewHolder(View.inflate(getApplicationContext(), R.layout.layout_view_cache, null));
        }

        @Override
        public void onBindViewHolder(int viewType, MyViewHolder viewHolder, BaseDanmaku danmaku, AndroidDisplayer.DisplayerConfig displayerConfig, TextPaint paint) {
            if (paint != null)
                viewHolder.mText.getPaint().set(paint);
            viewHolder.mText.setText(danmaku.text);
            viewHolder.mText.setTextColor(danmaku.textColor);
            viewHolder.mText.setTextSize(TypedValue.COMPLEX_UNIT_PX, danmaku.textSize);
            Bitmap bitmap = null;
            MyImageWare imageWare = (MyImageWare) danmaku.tag;
            if (imageWare != null) {
                bitmap = imageWare.bitmap;
                if (danmaku.text.toString().contains("textview")) {
                    Log.e("DFM", "onBindViewHolder======> bitmap:" + (bitmap == null) + "  " + danmaku.tag + "url:" + imageWare.getImageUri());
                }
            }
            if (bitmap != null) {
                viewHolder.mIcon.setImageBitmap(bitmap);
                if (danmaku.text.toString().contains("textview")) {
                    Log.e("DFM", "onBindViewHolder======>" + danmaku.tag + "url:" + imageWare.getImageUri());
                }
            } else {
                viewHolder.mIcon.setImageResource(R.drawable.ic_launcher);
            }
        }

        @Override
        public void releaseResource(BaseDanmaku danmaku) {
            MyImageWare imageWare = (MyImageWare) danmaku.tag;
            if (imageWare != null) {
                ImageLoader.getInstance().cancelDisplayTask(imageWare);
            }
            danmaku.setTag(null);
            Log.e("DFM", "releaseResource url:" + danmaku.text);
        }

        String[] avatars = { "http://i0.hdslb.com/bfs/face/e13fcb94342c325debb2d3a1d9e503ac4f083514.jpg@45w_45h.webp", "http://i0.hdslb.com/bfs/bangumi/2558e1341d2e934a7e06bb7d92551fef5c82c172.jpg@72w_72h.webp", "http://i0.hdslb.com/bfs/face/128edefeef7ce9cfc443a2489d8a1c7d44d88b80.jpg@72w_72h.webp" };

        @Override
        public void prepare(BaseDanmaku danmaku, boolean fromWorkerThread) {
            if (danmaku.isTimeOut()) {
                return;
            }
            MyImageWare imageWare = (MyImageWare) danmaku.tag;
            if (imageWare == null) {
                String avatar = avatars[danmaku.index % avatars.length];
                imageWare = new MyImageWare(avatar, danmaku, mIconWidth, mIconWidth, mDanmakuView);
                danmaku.setTag(imageWare);
            }
            if (danmaku.text.toString().contains("textview")) {
                Log.e("DFM", "onAsyncLoadResource======>" + danmaku.tag + "url:" + imageWare.getImageUri());
            }
            ImageLoader.getInstance().displayImage(imageWare.getImageUri(), imageWare);
        }
    }, // 图文混排使用SpannedCacheStuffer
    null).setMaximumLines(maxLinesPair).preventOverlapping(overlappingEnablePair);
    if (mDanmakuView != null) {
        mParser = createParser(this.getResources().openRawResource(R.raw.comments));
        mDanmakuView.setCallback(new master.flame.danmaku.controller.DrawHandler.Callback() {

            @Override
            public void updateTimer(DanmakuTimer timer) {
            }

            @Override
            public void drawingFinished() {
            }

            @Override
            public void danmakuShown(BaseDanmaku danmaku) {
            //                    Log.d("DFM", "danmakuShown(): text=" + danmaku.text);
            }

            @Override
            public void prepared() {
                mDanmakuView.start();
            }
        });
        mDanmakuView.setOnDanmakuClickListener(new IDanmakuView.OnDanmakuClickListener() {

            @Override
            public boolean onDanmakuClick(IDanmakus danmakus) {
                Log.d("DFM", "onDanmakuClick: danmakus size:" + danmakus.size());
                BaseDanmaku latest = danmakus.last();
                if (null != latest) {
                    Log.d("DFM", "onDanmakuClick: text of latest danmaku:" + latest.text);
                    return true;
                }
                return false;
            }

            @Override
            public boolean onViewClick(IDanmakuView view) {
                mMediaController.setVisibility(View.VISIBLE);
                return false;
            }
        });
        mDanmakuView.prepare(mParser, mContext);
        mDanmakuView.showFPS(true);
        mDanmakuView.enableDanmakuDrawingCache(true);
    }
    if (mVideoView != null) {
        mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

            @Override
            public void onPrepared(MediaPlayer mediaPlayer) {
                mediaPlayer.start();
            }
        });
        mVideoView.setVideoPath(Environment.getExternalStorageDirectory() + "/1.flv");
    }
}
Also used : HashMap(java.util.HashMap) VideoView(android.widget.VideoView) Bitmap(android.graphics.Bitmap) BaseDanmaku(master.flame.danmaku.danmaku.model.BaseDanmaku) DanmakuTimer(master.flame.danmaku.danmaku.model.DanmakuTimer) IDanmakus(master.flame.danmaku.danmaku.model.IDanmakus) AndroidDisplayer(master.flame.danmaku.danmaku.model.android.AndroidDisplayer) IDanmakuView(master.flame.danmaku.controller.IDanmakuView) TextPaint(android.text.TextPaint) Paint(android.graphics.Paint) TextPaint(android.text.TextPaint) MediaPlayer(android.media.MediaPlayer)

Example 18 with VideoView

use of android.widget.VideoView in project android_frameworks_base by ResurrectionRemix.

the class VideoViewCaptureActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mVideoView = new VideoView(this);
    mVideoView.setOnPreparedListener(mp -> {
        mp.setLooping(true);
        mVideoWidth = mp.getVideoWidth();
        mVideoHeight = mp.getVideoHeight();
        mVideoView.start();
    });
    Uri uri = Uri.parse("android.resource://com.android.test.hwui/" + R.raw.colorgrid_video);
    mVideoView.setVideoURI(uri);
    Button button = new Button(this);
    button.setText("Copy bitmap to /sdcard/surfaceview.png");
    button.setOnClickListener((View v) -> {
        final Bitmap b = Bitmap.createBitmap(mVideoWidth, mVideoHeight, Bitmap.Config.ARGB_8888);
        PixelCopy.request(mVideoView, b, (int result) -> {
            if (result != PixelCopy.SUCCESS) {
                Toast.makeText(VideoViewCaptureActivity.this, "Failed to copy", Toast.LENGTH_SHORT).show();
                return;
            }
            try {
                try (FileOutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory() + "/surfaceview.png")) {
                    b.compress(Bitmap.CompressFormat.PNG, 100, out);
                }
            } catch (Exception e) {
            // Ignore
            }
        }, mVideoView.getHandler());
    });
    FrameLayout content = new FrameLayout(this);
    LinearLayout layout = new LinearLayout(this);
    layout.setOrientation(LinearLayout.VERTICAL);
    layout.addView(button, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    layout.addView(mVideoView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
    content.addView(layout, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
    setContentView(content);
}
Also used : Bitmap(android.graphics.Bitmap) Button(android.widget.Button) VideoView(android.widget.VideoView) FileOutputStream(java.io.FileOutputStream) FrameLayout(android.widget.FrameLayout) Uri(android.net.Uri) View(android.view.View) VideoView(android.widget.VideoView) LinearLayout(android.widget.LinearLayout)

Example 19 with VideoView

use of android.widget.VideoView in project Resurrection_packages_apps_Settings by ResurrectionRemix.

the class ToggleScreenMagnificationPreferenceFragment method onResume.

@Override
public void onResume() {
    super.onResume();
    // Temporarily enable Magnification on this screen if it's disabled.
    if (Settings.Secure.getInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, 0) == 0) {
        setMagnificationEnabled(1);
    }
    VideoView videoView = (VideoView) getView().findViewById(R.id.video);
    if (videoView != null) {
        videoView.start();
    }
}
Also used : VideoView(android.widget.VideoView)

Example 20 with VideoView

use of android.widget.VideoView in project Lightning-Browser by anthonycr.

the class BrowserActivity method onShowCustomView.

@Override
public synchronized void onShowCustomView(final View view, CustomViewCallback callback, int requestedOrientation) {
    final LightningView currentTab = mTabsManager.getCurrentTab();
    if (view == null || mCustomView != null) {
        if (callback != null) {
            try {
                callback.onCustomViewHidden();
            } catch (Exception e) {
                Log.e(TAG, "Error hiding custom view", e);
            }
        }
        return;
    }
    try {
        view.setKeepScreenOn(true);
    } catch (SecurityException e) {
        Log.e(TAG, "WebView is not allowed to keep the screen on");
    }
    mOriginalOrientation = getRequestedOrientation();
    mCustomViewCallback = callback;
    mCustomView = view;
    setRequestedOrientation(requestedOrientation);
    final FrameLayout decorView = (FrameLayout) getWindow().getDecorView();
    mFullscreenContainer = new FrameLayout(this);
    mFullscreenContainer.setBackgroundColor(ContextCompat.getColor(this, android.R.color.black));
    if (view instanceof FrameLayout) {
        if (((FrameLayout) view).getFocusedChild() instanceof VideoView) {
            mVideoView = (VideoView) ((FrameLayout) view).getFocusedChild();
            mVideoView.setOnErrorListener(new VideoCompletionListener());
            mVideoView.setOnCompletionListener(new VideoCompletionListener());
        }
    } else if (view instanceof VideoView) {
        mVideoView = (VideoView) view;
        mVideoView.setOnErrorListener(new VideoCompletionListener());
        mVideoView.setOnCompletionListener(new VideoCompletionListener());
    }
    decorView.addView(mFullscreenContainer, COVER_SCREEN_PARAMS);
    mFullscreenContainer.addView(mCustomView, COVER_SCREEN_PARAMS);
    decorView.requestLayout();
    setFullscreen(true, true);
    if (currentTab != null) {
        currentTab.setVisibility(View.INVISIBLE);
    }
}
Also used : VideoView(android.widget.VideoView) FrameLayout(android.widget.FrameLayout) LightningView(acr.browser.lightning.view.LightningView) IOException(java.io.IOException)

Aggregations

VideoView (android.widget.VideoView)21 View (android.view.View)13 MediaPlayer (android.media.MediaPlayer)10 Uri (android.net.Uri)8 Bitmap (android.graphics.Bitmap)7 FrameLayout (android.widget.FrameLayout)6 Button (android.widget.Button)5 LinearLayout (android.widget.LinearLayout)5 TextView (android.widget.TextView)4 FileOutputStream (java.io.FileOutputStream)4 ImageView (android.widget.ImageView)3 IOException (java.io.IOException)3 IDanmakuView (master.flame.danmaku.controller.IDanmakuView)3 DanmakuTimer (master.flame.danmaku.danmaku.model.DanmakuTimer)3 OnClickListener (android.view.View.OnClickListener)2 MediaController (android.widget.MediaController)2 HashMap (java.util.HashMap)2 BaseDanmaku (master.flame.danmaku.danmaku.model.BaseDanmaku)2 IDanmakus (master.flame.danmaku.danmaku.model.IDanmakus)2 LightningView (acr.browser.lightning.view.LightningView)1