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"));
}
}
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");
}
}
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);
}
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();
}
}
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);
}
}
Aggregations