无论如何,您可以使应用程序在方向之后保留缓冲区,而无需手动处理配置更改.
场景基本上:
当方向改变时,应保留视频缓冲区直到最新点.
需要重新加载新的布局(因为portait和lanscape具有不同的布局),因此让app重新启动活动以重新加载新资源是我认为最好的方法.
视频组件位于片段中.
我尝试但不可接受的替代方案:
第一个解决方法是保存视频的位置,在创建视图后,使用seekTo转到最后一个点.但是,这将导致设备再次重新缓冲.
我尝试使用片段setRetainInstance(true)并确保在方向更改后媒体播放器不会重新初始化.在每个onCreateView之后,我只需将mediaplayer.setDisplay()设置为新的surfaceholder.不幸的是,这导致媒体播放器进入错误状态,这又需要重置媒体播放器.
对此有何建议/解决方法?
编辑:我看到stackoverflow中的某个地方,你可以更改媒体播放器表面持有人,而媒体播放器在android 4.0+中处于活动状态.但是,我正在为android 3.x开发一个应用程序.
目前我有以下资源文件夹:
1.layout
-sw600dp
2. layout-sw600dp-notlong
我们的想法是我们有3种类型的设备,设备应该相应地使用正确文件夹中的资源.这些设备是:
1.三星Galaxy Tab 10.1,1280 X 800 mdpi.16/10
2.华硕Transformer TFT 101,1280 X 800 mdpi.16/10.
3.通用平板电脑,800 X 600 ldpi.4/3.
问题是所有3个设备都使用来自layout-sw600dp-notlong的资源.根据我的理解,4/3被归类为-notlong设备.
我的标识符使用有什么问题吗?或者是否有针对标识符报告的错误?
预先感谢.