播放框架 - TextureView 播放

Hardware acceleration
用MediaPlayer+TextureView封装一个完美实现全屏、小窗口的视频播放器

存在问题:
1、导致UI的文字显示成方块

备注1:

SurfaceTexture 创建的 stack 

06-04 10:28:10.678 1433 1433 D WallpaperTextureView: onSurfaceTextureAvailable 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: java.lang.Throwable 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at com.pptv.base.debug.DebugLog.println(DebugLog.java:188) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at com.pptv.base.debug.DebugLog.d(DebugLog.java:157) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at com.pptv.base.debug.DebugLog.d(DebugLog.java:145) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at com.pptv.wallpaperplayer.view.WallpaperTextureView.onSurfaceTextureAvailable(WallpaperTextureView.java:69) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.TextureView.getHardwareLayer(TextureView.java:385) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.getDisplayList(View.java:13332) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.getDisplayList(View.java:13408) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.draw(View.java:14186) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewGroup.drawChild(ViewGroup.java:3103) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2940) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.getDisplayList(View.java:13361) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.getDisplayList(View.java:13408) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.draw(View.java:14186) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewGroup.drawChild(ViewGroup.java:3103) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2940) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.draw(View.java:14472) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.widget.FrameLayout.draw(FrameLayout.java:472) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.getDisplayList(View.java:13366) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.getDisplayList(View.java:13408) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.draw(View.java:14186) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewGroup.drawChild(ViewGroup.java:3103) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2940) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.getDisplayList(View.java:13361) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.getDisplayList(View.java:13408) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.draw(View.java:14186) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewGroup.drawChild(ViewGroup.java:3103) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2940) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.getDisplayList(View.java:13361) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.getDisplayList(View.java:13408) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.draw(View.java:14186) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewGroup.drawChild(ViewGroup.java:3103) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2940) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.getDisplayList(View.java:13361) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.getDisplayList(View.java:13408) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.draw(View.java:14186) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewGroup.drawChild(ViewGroup.java:3103) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2940) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.draw(View.java:14472) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.widget.FrameLayout.draw(FrameLayout.java:472) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2334) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.getDisplayList(View.java:13366) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.View.getDisplayList(View.java:13408) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.HardwareRenderer$GlRenderer.buildDisplayList(HardwareRenderer.java:1570) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1449) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewRootImpl.draw(ViewRootImpl.java:2385) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2257) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1887) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5609) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.Choreographer.doCallbacks(Choreographer.java:574) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.Choreographer.doFrame(Choreographer.java:544) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.os.Handler.handleCallback(Handler.java:733) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.os.Handler.dispatchMessage(Handler.java:95) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.os.Looper.loop(Looper.java:136) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at android.app.ActivityThread.main(ActivityThread.java:5001) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at java.lang.reflect.Method.invokeNative(Native Method) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at java.lang.reflect.Method.invoke(Method.java:515) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604) 
06-04 10:28:10.678 1433 1433 D WallpaperTextureView: at dalvik.system.NativeStart.main(Native Method) 

备注2:

SurfaceTexture 消耗的 stack 

06-04 10:31:49.548 1433 1433 D WallpaperTextureView: onSurfaceTextureDestroyed 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: java.lang.Throwable 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at com.pptv.base.debug.DebugLog.println(DebugLog.java:188) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at com.pptv.base.debug.DebugLog.d(DebugLog.java:157) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at com.pptv.base.debug.DebugLog.d(DebugLog.java:145) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at com.pptv.wallpaperplayer.view.WallpaperTextureView.onSurfaceTextureDestroyed(WallpaperTextureView.java:90) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.TextureView.destroySurface(TextureView.java:239) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.TextureView.destroyHardwareResources(TextureView.java:344) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2293) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2300) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2300) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2300) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2300) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2300) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.HardwareRenderer$Gl20Renderer.destroyResources(HardwareRenderer.java:2300) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.HardwareRenderer$Gl20Renderer.access$800(HardwareRenderer.java:1877) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.HardwareRenderer$Gl20Renderer$2.run(HardwareRenderer.java:2285) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.HardwareRenderer$Gl20Renderer.safelyRun(HardwareRenderer.java:2236) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.HardwareRenderer$Gl20Renderer.destroyHardwareResources(HardwareRenderer.java:2279) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.ViewRootImpl.destroyHardwareResources(ViewRootImpl.java:629) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1243) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5609) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.Choreographer.doCallbacks(Choreographer.java:574) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.Choreographer.doFrame(Choreographer.java:544) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.os.Handler.handleCallback(Handler.java:733) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.os.Handler.dispatchMessage(Handler.java:95) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.os.Looper.loop(Looper.java:136) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at android.app.ActivityThread.main(ActivityThread.java:5001) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at java.lang.reflect.Method.invokeNative(Native Method) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at java.lang.reflect.Method.invoke(Method.java:515) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604) 
06-04 10:31:49.548 1433 1433 D WallpaperTextureView: at dalvik.system.NativeStart.main(Native Method) 

备注3:

在 setVisibility 不可见时 destorysurface 

06-04 12:44:31.818 16158 16158 D WallpaperTextureView: onSurfaceTextureDestroyed 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: java.lang.Throwable 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at com.pptv.base.debug.DebugLog.println(DebugLog.java:188) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at com.pptv.base.debug.DebugLog.d(DebugLog.java:157) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at com.pptv.base.debug.DebugLog.d(DebugLog.java:145) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at com.pptv.wallpaperplayer.view.WallpaperTextureView.onSurfaceTextureDestroyed(WallpaperTextureView.java:99) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at android.view.TextureView.destroySurface(TextureView.java:239) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at android.view.TextureView.destroyHardwareResources(TextureView.java:344) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at com.pptv.wallpaperplayer.view.WallpaperTextureView.setVisibility(WallpaperTextureView.java:65) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at com.pptv.wallpaperplayer.view.MediaDisplayView.setVisibility(MediaDisplayView.java:301) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at com.pptv.wallpaperplayer.view.MediaDisplayView$3.run(MediaDisplayView.java:203) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at android.os.Handler.handleCallback(Handler.java:733) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at android.os.Handler.dispatchMessage(Handler.java:95) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at android.os.Looper.loop(Looper.java:136) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at android.app.ActivityThread.main(ActivityThread.java:5001) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at java.lang.reflect.Method.invokeNative(Native Method) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at java.lang.reflect.Method.invoke(Method.java:515) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604) 
06-04 12:44:31.818 16158 16158 D WallpaperTextureView: at dalvik.system.NativeStart.main(Native Method) 

备注4:

要打开硬件加速 

WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED 

android:hardwareAccelerated

猜你喜欢

转载自blog.csdn.net/luansxx/article/details/89429363