hnrtwh
hnrtwh
  • 发布:2021-09-27 10:59
  • 更新:2021-12-10 09:29
  • 阅读:836

【报Bug】video全屏闪退

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 3.2.3

手机系统: Android

手机系统版本号: Android 5.1

手机机型: rk3288

页面类型: vue

nvue编译模式: fast

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

adb logcat
E/ROCKCHIP_VIDEO_DEC( 213): Rkvpu_OutputBufferReturn 5166667
E/ROCKCHIP_VIDEO_DEC( 213): Rkvpu_OutputBufferReturn 5200000
E/ROCKCHIP_VIDEO_DEC( 213): Rkvpu_OutputBufferReturn 5233333
E/ROCKCHIP_VIDEO_DEC( 213): Rkvpu_OutputBufferReturn 5266667
W/System.err( 3098): java.lang.NoSuchMethodError: No virtual method isReleased()Z in class Landroid/graphics/SurfaceTexture; or its super classes (declaration of 'android.graphics.SurfaceTexture' appears in /system/framework/framework.jar)
W/System.err( 3098): at io.dcloud.media.video.ijkplayer.media.TextureRenderView$InternalSurfaceHolder.bindToMediaPlayer(TextureRenderView.java:162)
W/System.err( 3098): at io.dcloud.media.video.ijkplayer.media.IjkVideoView.bindSurfaceHolder(IjkVideoView.java:1036)
W/System.err( 3098): at io.dcloud.media.video.ijkplayer.media.IjkVideoView.access$2500(IjkVideoView.java:68)
W/System.err( 3098): at io.dcloud.media.video.ijkplayer.media.IjkVideoView$9.onSurfaceCreated(IjkVideoView.java:1068)
W/System.err( 3098): at io.dcloud.media.video.ijkplayer.media.TextureRenderView$SurfaceCallback.onSurfaceTextureAvailable(TextureRenderView.java:280)
W/System.err( 3098): at android.view.TextureView.getHardwareLayer(TextureView.java:370)
W/System.err( 3098): at android.view.View.updateDisplayListIfDirty(View.java:14274)
W/System.err( 3098): at android.view.View.getDisplayList(View.java:14319)
W/System.err( 3098): at android.view.View.draw(View.java:15089)
W/System.err( 3098): at android.view.ViewGroup.drawChild(ViewGroup.java:3405)
W/System.err( 3098): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
W/System.err( 3098): at android.view.View.updateDisplayListIfDirty(View.java:14292)
W/System.err( 3098): at android.view.View.getDisplayList(View.java:14319)
W/System.err( 3098): at android.view.View.draw(View.java:15089)
W/System.err( 3098): at android.view.ViewGroup.drawChild(ViewGroup.java:3405)
W/System.err( 3098): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
W/System.err( 3098): at android.view.View.draw(View.java:15364)
W/System.err( 3098): at android.widget.FrameLayout.draw(FrameLayout.java:600)
W/System.err( 3098): at android.view.View.updateDisplayListIfDirty(View.java:14297)
W/System.err( 3098): at android.view.View.getDisplayList(View.java:14319)
W/System.err( 3098): at android.view.View.draw(View.java:15089)
W/System.err( 3098): at android.view.ViewGroup.drawChild(ViewGroup.java:3405)
W/System.err( 3098): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
W/System.err( 3098): at android.view.View.updateDisplayListIfDirty(View.java:14292)
W/System.err( 3098): at android.view.View.getDisplayList(View.java:14319)
W/System.err( 3098): at android.view.View.draw(View.java:15089)
W/System.err( 3098): at android.view.ViewGroup.drawChild(ViewGroup.java:3405)
W/System.err( 3098): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
W/System.err( 3098): at android.view.View.updateDisplayListIfDirty(View.java:14292)
W/System.err( 3098): at android.view.View.getDisplayList(View.java:14319)
W/System.err( 3098): at android.view.View.draw(View.java:15089)
W/System.err( 3098): at android.view.ViewGroup.drawChild(ViewGroup.java:3405)
W/System.err( 3098): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
W/System.err( 3098): at android.view.View.updateDisplayListIfDirty(View.java:14292)
W/System.err( 3098): at android.view.View.getDisplayList(View.java:14319)
W/System.err( 3098): at android.view.View.draw(View.java:15089)
W/System.err( 3098): at android.view.ViewGroup.drawChild(ViewGroup.java:3405)
W/System.err( 3098): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
W/System.err( 3098): at android.view.View.draw(View.java:15364)
W/System.err( 3098): at android.widget.FrameLayout.draw(FrameLayout.java:600)
W/System.err( 3098): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2837)
W/System.err( 3098): at android.view.View.updateDisplayListIfDirty(View.java:14297)
W/System.err( 3098): at android.view.View.getDisplayList(View.java:14319)
W/System.err( 3098): at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:273)
W/System.err( 3098): at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:279)
W/System.err( 3098): at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:318)
W/System.err( 3098): at android.view.ViewRootImpl.draw(ViewRootImpl.java:2646)
W/System.err( 3098): at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2468)
W/System.err( 3098): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2098)
W/System.err( 3098): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1161)
W/System.err( 3098): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6198)
W/System.err( 3098): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
W/System.err( 3098): at android.view.Choreographer.doCallbacks(Choreographer.java:580)
W/System.err( 3098): at android.view.Choreographer.doFrame(Choreographer.java:550)
W/System.err( 3098): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
W/System.err( 3098): at android.os.Handler.handleCallback(Handler.java:739)
W/System.err( 3098): at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err( 3098): at android.os.Looper.loop(Looper.java:135)
W/System.err( 3098): at android.app.ActivityThread.main(ActivityThread.java:5280)
W/System.err( 3098): at java.lang.reflect.Method.invoke(Native Method)
W/System.err( 3098): at java.lang.reflect.Method.invoke(Method.java:372)
W/System.err( 3098): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:963)
W/System.err( 3098): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758)
E/UncaughtExceptionHandler( 3098): java.lang.NoSuchMethodError: No virtual method isReleased()Z in class Landroid/graphics/SurfaceTexture; or its super classes (declaration of 'android.graphics.SurfaceTexture' appears in /system/framework/framework.jar)
I/Process ( 3098): Sending signal. PID: 3098 SIG: 9
D/WeexCore( 3136): IPCFutexPageQueue.cpp:82, unlock: 4
E/WeexCore( 3136): script_bridge_in_multi_process.cpp:72, original owner has die
E/ROCKCHIP_VIDEO_DEC( 213): Rkvpu_OutputBufferReturn 5300000
E/ROCKCHIP_VIDEO_DEC( 213): Rkvpu_OutputBufferReturn 5333333
D/RockFFPlayer( 213): reset()
D/RockFFPlayerBase( 213): dumpStatus(): Preapared
D/RockFFPlayer( 213): reset(),stop_l
D/RockFFPlayer( 213): stop_l
D/RockFFPlayer( 213): enter enqueueMessage
D/RockFFPlayer( 213): enqueueMessage:1
D/RockFFPlayer( 213): enqueueMessage:2
D/RockFFPlayer( 213): enqueueMessage:
3
D/RockFFPlayer( 213): enqueueMessage:Message 1,set signal
D/RockFFPlayer( 213): enqueueMessage:sync wait
D/RockFFPlayer( 213): deliverMessage
D/RockFFPlayer( 213): run : dequeueMessage Message 4
D/RockFFPlayer( 213): CMD_STOP
D/RockFFPlayer( 213): doStop()
D/RockFFPlayerBase( 213): dumpStatus(): Preapared
D/RockFFPlayerBase( 213): dumpStatus(): Stopped
D/RockFFPlayer( 213): doRelease()
I/FFIDecoder( 213): waiting on end of decoder thread
E/FFMpegThread( 213): DecoderAudio,wait
D/RockFFPlayer( 213): end of onBufferingThread
I/WindowState( 486): WIN DEATH: Window{2afd8360 u0 com.hnrt.ldt/io.dcloud.PandoraEntryActivity}
W/MediaFocusControl( 486): AudioFocus audio focus client died
I/MediaFocusControl( 486): AudioFocus removeFocusStackEntry(): removing entry for android.os.BinderProxy@3a627587
E/OMXNodeInstance( 213): !!! Observer died. Quickly, do something, ... anything...
I/RockFFPlayer( 213): readthread end of playing
E/RockFFPlayerBase( 213): FFMPlayerBase::flushRenderQueue in
E/RockFFPlayerBase( 213): FFMPlayerBase::flushRenderQueue out
D/FFMpegThread( 213): DecoderAudio:~PlayerThread enter mThreadStatus=-1
D/RockFFPlayer( 213): doRelease ok
D/RockFFPlayer( 213): doStop()*OK
D/RockFFPlayer( 213): run : dequeueMessage Message 4 OK
D/RockFFPlayer( 213): Messagecomplete type [4]
D/RockFFPlayer( 213): run : Message 4 complete
D/RockFFPlayer( 213): enqueueMessage:sync wait ok
D/RockFFPlayer( 213): doRelease() clearQueue**
D/RockFFPlayer( 213): stop_l:MessageStop down
D/RockFFPlayerBase( 213): dumpStatus(): Stopped
D/RockFFPlayer( 213): stop_l : create CancelThread
D/RockFFPlayer( 213): stop_l :CancelThread create ok
D/RockFFPlayer( 213): stop_l buffer thread quit
D/RockFFPlayer( 213): enter enqueueMessage
D/RockFFPlayer( 213): enqueueMessage:1
D/RockFFPlayer( 213): enqueueMessage:2
D/RockFFPlayer( 213): enqueueMessage:
3
D/RockFFPlayer( 213): enqueueMessage:Message 1,set signal
D/RockFFPlayer( 213): enqueueMessage:sync wait
D/RockFFPlayer( 213): CancelThread start
D/RockFFPlayer( 213): deliverMessage
D/RockFFPlayer( 213): run : dequeueMessage Message 11
D/RockFFPlayer( 213): CMD_RESET
D/RockFFPlayerBase( 213): dumpStatus(): Idle
D/RockFFPlayer( 213): doReset ok
D/RockFFPlayer( 213): run : dequeueMessage Message 11 OK
D/RockFFPlayer( 213): Messagecomplete type [11]
D/RockFFPlayer( 213): run : Message 11 complete
D/RockFFPlayer( 213): enqueueMessage:sync wait ok
D/RockFFPlayer( 213): reset(),MessageReset down
D/RockFFPlayer( 213): signal thread out
D/RockFFPlayer( 213): sched_thread out
D/RockFFPlayer( 213): stop:wait is ok
D/RockFFPlayer( 213): stop:ok
D/RockFFPlayer( 213): ~RkMessageQueue
E/FFPlayer( 213): ~FFPlayer
D/RockFFPlayer( 213): reset()*

D/RockFFPlayerBase( 213): dumpStatus(): Idle
D/RockFFPlayer( 213): CurrentStatus is IDLE,already reset
D/WindowManagerService( 486): Window{2f36549f u0 com.hnrt.ldt/io.dcloud.PandoraEntryActivity} ==========setInputFocusLw ========== =======
D/RockFFPlayer( 213): ~FFMPlayer*
D/RockFFPlayer( 213): reset()**
D/RockFFPlayerBase( 213): dumpStatus(): Idle
D/RockFFPlayer( 213): CurrentStatus is IDLE,already reset
D/RockFFPlayer( 213): ~FFMPlayer:CancelThread
E/RockFFPlayerBase( 213): closeContext : in
I/WindowState( 486): WIN DEATH: Window{2f36549f u0 com.hnrt.ldt/io.dcloud.PandoraEntryActivity}
E/RockFFPlayerBase( 213): closeContext : out
D/RockFFPlayer( 213): CancelThread end
D/RockFFPlayer( 213): CancelThread return
D/RockFFPlayer( 213): ~FFMediaSource
D/RockFFPlayer( 213): FFMediaSource context null.
E/TraceThread( 213): VsyncReciver(tid = 3098193072)--> [UID=13de40a3] pthread_join begin-->player = 0xb8aa5470
D/WindowManagerService( 486): null ==========setInputFocusLw ========== =======
I/InputReader( 486): Reconfiguring input devices. changes=0x00000004
E/TraceThread( 213): VsyncReciver(tid = 3098193072)--> [UID=13de40a3] pthread_join end-->player = 0xb8aa5470
D/VsyncReciver( 213): stop_l:vsyncThread down
E/TraceThread( 213): RockFFPlayer(tid = 3100526088)--> [UID=13de40a3] ~FFMPlayer Destruction; object=0xb8aa5470
D/RockFFPlayer( 213): ~FFMPlayer
end
D/RockFFPlayerBase( 213): ~FFMPlayerBase(():mDequeueThread down
D/RockFFPlayerBase( 213): ~RkMessageHandler
D/vpu_api ( 213): codec thread thread_stop in
D/vpu_api ( 213): codec 0xb8e3bc90 work thread end
D/vpu_api ( 213): codec thread thread_stop ok
I/H264_DEBUG( 213): deinit DONE
I/vpu_mem_pool( 213): pid 213, close_vpu_memory_pool:552:
E/libprocessgroup( 486): failed to kill 1 processes for processgroup 3098
I/ActivityManagerService( 486): Process com.hnrt.ldt (pid 3098) has died
W/ActivityManagerService( 486): Force removing ActivityRecord{2d3bfd5c u0 com.hnrt.ldt/io.dcloud.PandoraEntryActivity t693}: app died, no saved state
D/ActivityManagerService( 486): moveHomeStackTaskToTop: moving TaskRecord{26b80ada #687 A=com.android.launcher3 U=0 sz=1}
V/WindowManagerService( 486): updateRotationUncheckedLocked: don't allow rotation#########.
D/ViewRootImpl( 916): 1920<<<<<< BACK FROM relayoutnull
D/WindowManagerService( 486): Window{10c86510 u0 com.android.launcher3/com.android.launcher3.Launcher} ==========setInputFocusLw ========== =======
D/ViewRootImpl( 916): 1920<<<<<< BACK FROM relayoutWM.LayoutParams{(0,0)(fillxfill)mPosX=0mPosY=0mHScale=1.0mVScale=1.0 align=UNDEFINE taskId=687 sim=#120 ty=1 fl=#81910100 fmt=-2 wanim=0x10303e5 vsysui=0x600 surfaceInsets=Rect(0, 0 - 0, 0) needsMenuKey=2packageName=com.android.launcher3token=android.os.BinderProxy@3974abb9}
W/InputMethodManagerService( 486): Got RemoteException sending setActive(false) notification to pid 3098 uid 10076
D/DisplayManager( 678): getDisplayInfo: displayId=0, info=DisplayInfo{"内置屏幕", uniqueId "local:0", app 1920 x 1080, real 1920 x 1080, largest app 1920 x 1920, smallest app 1080 x 1080, 59.974 fps, supportedRefreshRates [59.974], rotation 0, density 160 (159.89508 x 160.42105) dpi, layerStack 0, appVsyncOff 0, presDeadline 17673892, type BUILT_IN, state ON, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS}
D/DisplayManager( 678): getDisplayInfo: displayId=0, info=DisplayInfo{"内置屏幕", uniqueId "local:0", app 1920 x 1080, real 1920 x 1080, largest app 1920 x 1920, smallest app 1080 x 1080, 59.974 fps, supportedRefreshRates [59.974], rotation 0, density 160 (159.89508 x 160.42105) dpi, layerStack 0, appVsyncOff 0, presDeadline 17673892, type BUILT_IN, state ON, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS}
I/ProcessStatsService( 486): Prepared write state in 7ms

操作步骤:

官方demo点击全屏即可复现

预期结果:

视频全屏

实际结果:

闪退

bug描述:

rk3288安卓5.1.1,video点击全屏闪退,由于是公司自己设备,所以能不能麻烦官方修复下。

2021-09-27 10:59 负责人:DCloud_Android_DQQ 分享
已邀请:
DCloud_Android_DQQ

DCloud_Android_DQQ

我看看

  • hnrtwh (作者)

    拜托大佬了,困扰了几个月了

    2021-09-27 11:23

DCloud_Android_DQQ

DCloud_Android_DQQ

你留个qq吧

  • hnrtwh (作者)

    1073236926

    2021-09-27 11:39

DCloud_Android_DQQ

DCloud_Android_DQQ

已与开发者确认,稍后版本会修复此问题

  • makeit

    android nvue


    第一次加载video正常播放,然后动态修改1次video播放地址,video就黑屏了(但是播放时间还在走)。


    连续动态修改2次 video的播放地址,app就闪退


    只能把video关掉,再用新地址开启video才能播放


    hbx 正式版本 3.2.12.20211029

    2021-11-12 10:55

  • DCloud_Android_DQQ

    回复 makeit: bug已确认。 临时解决方案,先设置软解码。可以修复此问题

    2021-11-16 19:21

DCloud_Android_ST

DCloud_Android_ST

HX3.2.10 alpha 已修复该问题

makeit

makeit

nvue页面,第一次加载video正常播放,然后动态修改video播放地址,就video黑屏了。

只能把video关掉,再用新地址开启video播放地址才能播

  • makeit

    android nvue

    2021-11-11 23:26

  • hnrtwh (作者)

    回复 makeit: 软解应该可以动态播放,硬解就容易闪退

    2021-12-10 12:43

makeit

makeit

android nvue

第一次加载video正常播放,然后动态修改1次video播放地址,video就黑屏了(但是播放时间还在走)。

连续动态修改2次 video的播放地址,app就闪退

只能把video关掉,再用新地址开启video才能播放

hbx 正式版本 3.2.12.20211029

l***@tiptech.com.cn

l***@tiptech.com.cn

请问这个问题还没修复吗?我的是环境跟题主的环境一样,编译HX3.2.16,新编译的版本还是闪退。

  • hnrtwh (作者)

    我这里倒是可以了,但是不能动态更换,实在不行用软解吧,只是画质差了点

    2021-12-10 12:45

  • l***@tiptech.com.cn

    回复 hnrtwh: 软解怎么设置

    2021-12-17 09:57

  • l***@tiptech.com.cn

    找到了

    2021-12-17 10:02

要回复问题请先登录注册