android VideoView截屏黑屏解决方法
来源:互联网 发布:linux运行jar文件 编辑:程序博客网 时间:2024/06/06 01:39
今天在开发中需要截取正在播放的在线视频中的画面,于是在网上找了几种方法,但效果都一样,截出来的图片黑黑的一片,为了验证截屏方法是不是有问题,于是就截了个全屏,发现截出来的图片屏幕上半部分VideoView区域黑黑的一片,下半部分界面正常截取,说明截屏方法没有问题,问题出在VideoView截屏的时候获得不到画面,网上找了多种方法试了也没有解决,最后灵机一动想到了一种方法:使用adb命令截取全屏,然后再用代码对截取的全屏图片进行截取处理为需要的部分,问题解决。
我是一枚新人,朋友们有什么更好的方法或者本文不足请多多指教。
代码如下:
/*** 此方法把截屏得到的图片保存到指定的路径下
*/
public void sreenShot() {
String path = "/mnt/sdcard/" + new Date().getTime() + ".png";
String cmd = "screencap -p " + path;
try {
Process process = Runtime.getRuntime().exec("su");//不同的设备权限不一样
PrintWriter pw = new PrintWriter(process.getOutputStream());
pw.println(cmd);
pw.flush();
pw.println("exit");
pw.flush();
try {
process.waitFor();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
pw.close();
process.destroy();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
然后在需要显示的地方或者处理图片的地方:
用Bitmap oldMap = BitmapFactory.decodeFile(path);//path:保存图片的路径。
Bitmap newMap = Bitmap.createBitmap(oldMap,0,0,width,height);//老的bitmap,X起始点,Y起始点, X结束点,Y结束点
这样就获得需要长款的截图,本文截出来的图片宽和高是相反的,所以需要进行X,Y的起始点和结束点互换,并且需要顺时针旋转90度,方法如下:
Matrix mx = new Matrix();
mx.postRotate(90);
所以上面第二行代码需要这样写: Bitmap newMap = Bitmap.createBitmap(oldMap,0,0,height,width,mx,true):
问题解决,如果哪位朋友有更好的方法和发现不足请多多指教!谢谢
1 0
- android VideoView截屏黑屏解决方法
- android videoview 播放前黑屏的解决方法之一
- Android VideoView播放本地视频短暂黑屏的解决方法
- VideoView 黑屏
- Android应用启动黑屏、白屏解决方法
- android VideoView播放完视频一直黑屏的问题
- Android VideoView播放视频只有声音没有图像黑屏
- Android VideoView播放视频只有声音没有图像黑屏
- Android VideoView播放视频只有声音没有图像黑屏
- add videoview黑屏一下
- VideoView加载闪黑屏
- android ListView拖动时会黑屏的解决方法
- Android ListView滑动时出现黑屏解决方法
- Android Studio 2.3+Emulator启动黑屏解决方法
- Android-- VideoView
- android videoview
- VideoView在播放视频出现黑屏现象
- Android中使用VideoView播放视屏
- 毕业设计之jdk和spring不兼容
- 为Twemproxy 添加 Auth
- C++ Primer Plus编程练习 7.13-2
- Codeforces Round #303 (Div. 2)-D. Queue(优先队列)
- AsyncTask的缺陷和问题
- android VideoView截屏黑屏解决方法
- linux下边搭建redis
- C++作业3/1
- Transferring Sylla POJ, 3713
- 10分钟理解TCP/IP各个协议以及协议之间的关系
- 《leetCode》:Implement Queue using Stacks
- 【Android】结合源码解析Android消息队列工作流程
- Android 设置EditText为仅输入数字且最多只能有两位数字
- react简介