uni-app video组件在android 5.1系统上崩溃

uni-app video组件在android 5.1系统上崩溃

开发环境 版本号 项目创建方式
Windows 10 HBuilderX

产品分类:uniapp/App
PC开发环境操作系统:Windows
手机系统:Android
手机系统版本号:Android 5.1
手机厂商:米投
手机机型:米投投影仪 v1
页面类型:vue
打包方式:云端

操作步骤:

按照如上代码,在android5.1设备上将视频设置为全屏。

预期结果:

全屏

实际结果:

崩溃

bug描述:

页面代码如下(去掉了条件编译的H5代码):

<view class="left tvgroup-0-0  tvgroup-1-0">  
    <video id='video1' class="video video-js tvitem-0-0" :src="src" @click="togglePlay" @ended="onfinish"></video>  
</view>  

onReady() {  
    // #ifndef H5  
    this.context = uni.createVideoContext("video1");  
    this.play();  
    // #endif  
},  

fullScreen() {  
    // #ifndef H5  
    this.context.requestFullScreen({  
        direction: -90  
    });  
    // #endif  
},

更多关于uni-app video组件在android 5.1系统上崩溃的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

在日志中看到的
W/System.err( 9829): java.lang.NoSuchMethodError: android.graphics.SurfaceTexture.isReleased
W/System.err( 9829): at io.dcloud.media.video.ijkplayer.media.TextureRenderView$InternalSurfaceHolder.bindToMediaPlayer(TextureRenderView.java:162)
W/System.err( 9829): at io.dcloud.media.video.ijkplayer.media.IjkVideoView.bindSurfaceHolder(IjkVideoView.java:955)
W/System.err( 9829): at io.dcloud.media.video.ijkplayer.media.IjkVideoView.access$2500(IjkVideoView.java:62)
W/System.err( 9829): at io.dcloud.media.video.ijkplayer.media.IjkVideoView$9.onSurfaceCreated(IjkVideoView.java:987)
W/System.err( 9829): at io.dcloud.media.video.ijkplayer.media.TextureRenderView$SurfaceCallback.onSurfaceTextureAvailable(TextureRenderView.java:280)
W/System.err( 9829): at android.view.TextureView.getHardwareLayer(TextureView.java:385)
W/System.err( 9829): at android.view.View.getDisplayList(View.java:13339)
W/System.err( 9829): at android.view.View.getDisplayList(View.java:13415)
W/System.err( 9829): at android.view.View.draw(View.java:14193)
W/System.err( 9829): at android.view.ViewGroup.drawChild(ViewGroup.java:3105)
W/System.err( 9829): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2942)
W/System.err( 9829): at android.view.View.getDisplayList(View.java:13368)
W/System.err( 9829): at android.view.View.getDisplayList(View.java:13415)
W/System.err( 9829): at android.view.View.draw(View.java:14193)
W/System.err( 9829): at android.view.ViewGroup.drawChild(ViewGroup.java:3105)
W/System.err( 9829): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2942)
W/System.err( 9829): at android.view.View.draw(View.java:14479)
W/System.err( 9829): at android.widget.FrameLayout.draw(FrameLayout.java:472)
W/System.err( 9829): at android.view.View.getDisplayList(View.java:13373)
W/System.err( 9829): at android.view.View.getDisplayList(View.java:13415)
W/System.err( 9829): at android.view.View.draw(View.java:14193)
W/System.err( 9829): at android.view.ViewGroup.drawChild(ViewGroup.java:3105)
W/System.err( 9829): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2942)
W/System.err( 9829): at android.view.View.getDisplayList(View.java:13368)
W/System.err( 9829): at android.view.View.getDisplayList(View.java:13415)
W/System.err( 9829): at android.view.View.draw(View.java:14193)
W/System.err( 9829): at android.view.ViewGroup.drawChild(ViewGroup.java:3105)
W/System.err( 9829): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2942)
W/System.err( 9829): at android.view.View.draw(View.java:14479)
W/System.err( 9829): at android.widget.FrameLayout.draw(FrameLayout.java:472)
W/System.err( 9829): at android.view.View.getDisplayList(View.java:13373)
W/System.err( 9829): at android.view.View.getDisplayList(View.java:13415)
W/System.err( 9829): at android.view.View.draw(View.java:14193)
W/System.err( 9829): at android.view.ViewGroup.drawChild(ViewGroup.java:3105)
W/System.err( 9829): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2942)
W/System.err( 9829): at android.view.View.getDisplayList(View.java:13368)
W/System.err( 9829): at android.view.View.getDisplayList(View.java:13415)
W/System.err( 9829): at android.view.View.draw(View.java:14193)
W/System.err( 9829): at android.view.ViewGroup.drawChild(ViewGroup.java:3105)
W/System.err( 9829): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2942)
W/System.err( 9829): at android.view.View.draw(View.java:14479)
W/System.err( 9829): at android.widget.FrameLayout.draw(FrameLayout.java:472)
W/System.err( 9829): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2393)
W/System.err( 9829): at android.view.View.getDisplayList(View.java:13373)
W/System.err( 9829): at android.view.View.getDisplayList(View.java:13415)
W/System.err( 9829): at android.view.HardwareRenderer$GlRenderer.buildDisplayList(HardwareRenderer.java:1570)
W/System.err( 9829): at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1449)
W/System.err( 9829): at android.view.ViewRootImpl.draw(ViewRootImpl.java:2427)
W/System.err( 9829): at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2299)
W/System.err( 9829): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1929)
W/System.err( 9829): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1046)
W/System.err( 9829): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5663)
W/System.err( 9829): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
W/System.err( 9829): at android.view.Choreographer.doCallbacks(Choreographer.java:574)
W/System.err( 9829): at android.view.Choreographer.doFrame(Choreographer.java:544)
W/System.err( 9829): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
W/System.err( 9829): at android.os.Handler.handleCallback(Handler.java:733)
W/System.err( 9829): at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err( 9829): at android.os.Looper.loop(Looper.java:136)
W/System.err( 9829): at android.app.ActivityThread.main(ActivityThread.java:5052)
W/System.err( 9829): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 9829): at java.lang.reflect.Method.invoke(Method.java:515)
W/System.err( 9829): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
W/System.err( 9829): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
W/System.err( 9829): at dalvik.system.NativeStart.main(Native Method)
E/UncaughtExceptionHandler( 9829): java.lang.NoSuchMethodError: android.graphics.SurfaceTexture.isReleased

更多关于uni-app video组件在android 5.1系统上崩溃的实战教程也可以访问 https://www.itying.com/category-93-b0.html


日志是用一个小米手机弄出来的,4.4.4的版本。这个应用主要用在电视和投影仪上,小米电视 4k和投影仪都会崩溃,但是我不知道怎么取日志,所以找了台旧手机,估计问题是一样的。

请提供简单、可稳定复现、能直接运行的完整示例(上传附件),方便我们快速排查问题哦。 【bug优先处理规则】https://ask.dcloud.net.cn/article/38139

已添加demo

在下一条回复里

android 4.4.4可稳定重现

android 5.1 下也会崩溃

android 5.0,硬解码方式,requestFullScreen会崩溃,软解码不会,求解决

我目前采用其它方案规避了这个问题。 video 直接全屏尺寸创建,不调用requestFullScreen就不会崩溃。uni目前对于电视和android6.0以下的设备在硬件方面总是有一些奇奇怪怪的问题。

回到顶部