iielse / imageviewer

A simple and customizable Android full-screen image viewer 一个简单且可自定义的Android全屏图像浏览器
MIT License
2.23k stars 310 forks source link

请问怎么通过sensor感应实现视频横屏竖屏播放 #141

Closed SoloLee closed 1 year ago

SoloLee commented 1 year ago

这个库怎么通过sensor感应旋转实现视频的横竖屏播放功能,具体在哪个地方进行处理呢?

iielse commented 1 year ago

在你觉得合适的时候调用demo的 FullVideoActivity.start 进入横屏模式 sensor回调监听见 https://developer.android.com/reference/android/hardware/SensorEventListener?hl=en

SoloLee commented 1 year ago

video demo中视频多试几次横竖屏切换,会出问题,找了日志,似乎只有这个内存溢出。

如果项目中有多个入口调起这个资源查看器,这个合适的入口是否是在SimpleViewerCustomizer这个类中会比较好?

SoloLee commented 1 year ago

还有个问题,打开FullVideoActivity,没有playerControlView进度条等控制器view了,这个该怎么去携带

iielse commented 1 year ago

增加谷歌自带支持的 com.google.android.exoplayer2.ui.PlayerControlView . 调用 om.github.iielse.imageviewer.widgets.video.ExoVideoView中的成员方法 player() 拿到com.google.android.exoplayer2.ExoPlayer 对象. 将该player对象设置到 PlayerControlView 中完成自动关联. 若产品有UI需求可基于com.google.android.exoplayer2.ui.PlayerControlView再定制. 实在无法满足可考虑自己重写.

iielse commented 1 year ago

我使用demo对视频连续进行了52次横竖屏切换.并未出现内存溢出问题. 视频播放连贯.表现良好. 请详细附带你的操作手法.是否对demo源码进行过再次修改.

iielse commented 1 year ago

先说结论:该项目推荐使用者进行二次封装. 在UI视觉和图片加载框架.以及业务处理的诸多细节上实现自定义.

SimpleViewerCustomizer 只是一个由我随意提供的一种示例,它的意义就是完成上述操作. 每个开发者的 SimpleViewerCustomizer 的内容都不相同. 有的人甚至不需要video功能。 有的人需要增加长按保存,有的人不能要长按保存只能浏览. 甚至SimpleViewerCustomizer 都可以不叫这个名字. 这块逻辑也必须由开发者自己完成.

SoloLee commented 1 year ago

感谢大佬耐心回复。这个框架很好用,目前已经进行二次封装开发,后续遇到问题再来请教。

iielse commented 1 year ago

那个内存溢出的问题,我这边确实没能出现, 如果基于无修改的最新demo能复现,可以在及时通知我, 请使用最新版本的sdk.