Android:视频播放器相关问题汇总(草稿)

这篇博客总结了Android视频播放过程中遇到的各种问题及其解决方法,包括获取屏幕尺寸、横竖屏设置、处理未报告的IOException、createNewFile()与createTempFile()的对比,以及如何开启闪光灯和理解Android的回调接口机制。提供了详细的代码参考和链接资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Demo主体代码框架:http://www.mamicode.com/info-detail-1113731.html


一、获取屏幕的宽和高

两种方法:
1.
[java] view plain copy
WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);  
     int width = wm.getDefaultDisplay().getWidth();  
     int height = wm.getDefaultDisplay().getHeight();  


2.
[java] view plain copy
WindowManager wm = this.getWindowManager();  
     int width = wm.getDefaultDisplay().getWidth();  
     int height = wm.getDefaultDisplay().getHeight();  


二、视频播放中,surfaceview窗口大小的控制
[java] view plain copy
LayoutParams lp = surfaceView.getLayoutParams();  
lp.width = 1280;  
lp.height =720;  
surfaceView.setLayoutParams(lp);  


三、Android使用SurfaceView播放视频时横竖屏的调整 
原贴:http://blog.chinaunix.net/uid-20771867-id-4171565.html


四、dp与像素的转化


[java] view plain copy
DisplayMetrics metrics = new DisplayMetrics();  
getWindowManager().getDefaultDisplay().getMetrics(metrics);  
int scale = metrics.density;  


在这段代码中,scale 就表示一个dp 等于多少个像素,即
scale * px = dx 
例如scale=1.5,那么一个dp就等于1.5个像素。


五、获取屏幕的宽高(像素)、密度和DPI
[java] view plain copy
DisplayMetrics metric = new DisplayMetrics();  
        getWindowManager().getDefaultDisplay().getMetrics(metric);  
        int width = metric.widthPixels;     // 屏幕宽度(像素)  
        int height = metric.heightPixels;   // 屏幕高度(像素)  
        float density = metric.density;      // 屏幕密度(0.75 / 1.0 / 1.5)  
        int densityDpi = metric.densityDpi;  // 屏幕密度DPI(120 / 160 / 240)  


上面的代码需要支持做分辨率,需要配置:
[java] view plain copy
<supports-screens  
            android:smallScreens="true"  
            android:normalScreens="true"  
            android:largeScreens="true"  
            android:resizeable="true"  

            android:anyDensity="true" />  


六、横竖屏设置需要注意的问题

1、要先指定“横屏”或“竖屏”,否则程序不能获取屏幕的横竖屏状态。有两种方法:

(1)在AndroidManifest.xml里设置:

android:screenOrientation="portrait"

(2)在代码中设置

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

2、其他操作参考:

http://blog.chinaunix.net/uid-20771867-id-4171565.html


七、系统报错:未报告的异常   java.io.IOException;必须对其进行捕捉或声明以便抛出main(argv)

解决办法:在有IO操作的方法后面加上throws IOException。 


八、createNewFile()与createTempFile()的不同

http://my.oschina.net/forrest420/blog/81521


使用 File.createTempFile() 创建文件,并改名(不用随机名)

http://blog.csdn.net/chenzhehui/article/details/4037418


九、开启闪光灯的方法

http://www.jb51.net/article/78320.htm


十、android回调接口机制

http://blog.csdn.net/a78270528/article/details/46918601


九、开启闪光灯的方法

http://www.jb51.net/article/78320.htm


十、android回调接口机制

http://blog.csdn.net/a78270528/article/details/46918601

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值