我正在使用surfaceView播放视频。当我缩放surfaceView时,它的协调被正确缩放,但正在播放的视频内容不是。
我正在使用ViewHelper.setscaleX方法缩放视图。 我尝试了几件事,但无法缩放视频..如果我改变了参数,那么视频就会被正确缩放。但这使得过渡缓慢。 请查看初始视频和最终视频的快照(缩放后)。
答案 0 :(得分:1)
解决了它。使用TextureView而不是SurfaceView。动画在surfaceview上不起作用。使用此链接可以使用textureView:Playing video on TextureView
播放视频答案 1 :(得分:1)
请注意,当使用OpenGL绘制视频时,TextureView将消耗比SurfaceView更多的电池,而SurfaceView可以使用硬件覆盖(如果可用)。
正如其他人在评论中所说,你可以通过修改视图的layoutParams来达到你想要的效果。
答案 2 :(得分:0)
如果您必须坚持使用SurfaceView,因为您正在使用第三方库或诸如此类的东西,解决方法是使用缩放动画缩小它并在动画完成后,更新SurfaceView的布局图给出正确的大小和位置。它并不完美,但应该对那些别无选择的人有好处。
答案 3 :(得分:0)
在surfaceview上方添加一个透明视图,如相对布局,并在该透明视图上添加scalegesture探测器,当缩放发生时,只需在surfaceview或textureview上执行缩放。
我们假设透明视图名为videoview
。
Videoview.setOnClicklistner();
执行缩放时,请将scalefactor
转换为surfaceview
Surfaceview.setscaleX(scalefactor);
Surfaceview.setscaleY(scalefactor);
它会顺利运作