最近才开始上手android项目开发,工作任务是开发一个适合公司业务的播放器,所以就有了下文:
查阅资料:目前现有的方式有三种
1.系统自带的,这个忽略不参与讨论
2.VideoView,这个也是我最开始使用的方法,但是发现不够灵活,它是一个封装好了,可以快速使用的一个方法。
官方的文档说明:VideoView
3.使用MediaPlayer类和SurfaceView来实现,这种比较灵活,因为公司业务需要,使用了 TextureView
官方文档说明:TextureView
Unlike SurfaceView, TextureView does not create a separate window but behaves as a regular View. This key difference allows a TextureView to be moved, transformed, animated, etc. For instance, you can make a TextureView semi-translucent by calling myView.setAlpha(0.5f).
这也是为什么我使用后者的原因,后者可以扩展更多的功能。
在这深入这3个步骤的同时,所碰到的几个坑:
使用的videoView,会经常碰到提示“不支持当前视频的播放”,后来又查阅官方文档:
这里只贴出视频部分,更相信的请查阅官网:所支持的音视频格式 , 开始我也认定是视频格式的问题,用格式工厂对有问题的视频反复重新编码,还是不支持,后来索性把网络视频弄到本地播放,发现有部分可以支持播放了。。换了几台机测试,问题差不多,这个对网络视频支持有问题?请高人指点。。。
因为业务需要对视频再做编辑,所以采取了更灵活的textureView,还是用上述的代码,只是做小量的修改,奇迹发生了,网络和本地视频都很完美支持。。网上查资料,没有具体的资料讨论二者,有机会再深入研究下,现在还是学习的初级阶段,欢迎有类似问题的朋友参与讨论