uni-app Android平台 video组件动态切换src导致闪退

uni-app Android平台 video组件动态切换src导致闪退

19 回复

仅当前机型存在问题吗?其他机型是否正常?

更多关于uni-app Android平台 video组件动态切换src导致闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html


同样安卓版本 5.1.1,切换

我看错误日志是:

07-05 11:58:21.470 18151 18151 W System.err: 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) 07-05 11:58:21.471 18151 18151 W System.err: at io.dcloud.media.video.ijkplayer.media.TextureRenderView$InternalSurfaceHolder.bindToMediaPlayer(TextureRenderView.java:162) 07-05 11:58:21.471 18151 18151 W System.err: at io.dcloud.media.video.ijkplayer.media.IjkVideoView.bindSurfaceHolder(IjkVideoView.java:1003) 07-05 11:58:21.471 18151 18151 W System.err: at io.dcloud.media.video.ijkplayer.media.IjkVideoView.access$2500(IjkVideoView.java:68) 07-05 11:58:21.471 18151 18151 W System.err: at io.dcloud.media.video.ijkplayer.media.IjkVideoView$9.onSurfaceCreated(IjkVideoView.java:1035) 07-05 11:58:21.471 18151 18151 W System.err: at io.dcloud.media.video.ijkplayer.media.TextureRenderView$SurfaceCallback.onSurfaceTextureAvailable(TextureRenderView.java:280) 07-05 11:58:21.472 18151 18151 W System.err: at android.view.TextureView.getHardwareLayer(TextureView.java:370) 07-05 11:58:21.472 18151 18151 W System.err: at android.view.View.updateDisplayListIfDirty(View.java:14274) 07-05 11:58:21.472 18151 18151 W System.err: at android.view.View.getDisplayList(View.java:14319) …

回复 leegcc: 其他机型是否正常?

我这个也遇到了. 一样的问题 .切换不同的src 每次都立马闪退, 同一个src播放才正常

Android 5.1.1

一样遇到了,动态切换闪退,安卓5.1.1,安卓6以上测试可以

同样遇到了,安卓版本 5.1.1
错误日志:
我看错误日志是:
07-05 11:58:21.470 18151 18151 W System.err: 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) 07-05 11:58:21.471 18151 18151 W System.err: at io.dcloud.media.video.ijkplayer.media.TextureRenderView$InternalSurfaceHolder.bindToMediaPlayer(TextureRenderView.java:162) 07-05 11:58:21.471 18151 18151 W System.err: at io.dcloud.media.video.ijkplayer.media.IjkVideoView.bindSurfaceHolder(IjkVideoView.java:1003) 07-05 11:58:21.471 18151 18151 W System.err: at io.dcloud.media.video.ijkplayer.media.IjkVideoView.access$2500(IjkVideoView.java:68) 07-05 11:58:21.471 18151 18151 W System.err: at io.dcloud.media.video.ijkplayer.media.IjkVideoView$9.onSurfaceCreated(IjkVideoView.java:1035) 07-05 11:58:21.471 18151 18151 W System.err: at io.dcloud.media.video.ijkplayer.media.TextureRenderView$SurfaceCallback.onSurfaceTextureAvailable(TextureRenderView.java:280) 07-05 11:58:21.472 18151 18151 W System.err: at android.view.TextureView.getHardwareLayer(TextureView.java:370) 07-05 11:58:21.472 18151 18151 W System.err: at android.view.View.updateDisplayListIfDirty(View.java:14274) 07-05 11:58:21.472 18151 18151 W System.err: at android.view.View.getDisplayList(View.java:14319) …

安卓版本5.1.1,HbuilderX都到了3.2.12了还是没解决这个问题啊

设置一下 video组件的 编码格式为软解码 看看还有没有问题

默认就是软解码的?软解码硬解码都是不行

回复 1***@qq.com: 默认是硬解码

回复 1***@qq.com: 那你单独提个ask 留一下 可以复现问题的代码

回复 1***@qq.com: 解决了吗

我也遇到了,现在还没解决

单独提个ask 说明一下你的问题。 这个问题在HX 3.3.0.20211130-alpha 已经修复了

HX 3.3.0.20211130-alpha BUG已修复

在uni-app中,Android平台video组件动态切换src时出现闪退,通常是由于以下几个原因导致的:

  1. 资源加载问题:
  • 确保视频资源路径正确且可访问
  • 建议使用绝对路径或网络URL
  • 本地视频建议放在static目录下
  1. 内存管理问题:
  • 切换前先销毁旧视频实例
  • 使用v-if控制video组件的销毁与重建
  • 避免频繁切换src
  1. 推荐解决方案:
<video v-if="showVideo" :src="currentSrc"></video>
// 切换时先隐藏再显示
this.showVideo = false
this.$nextTick(() => {
    this.currentSrc = newSrc
    this.showVideo = true
})
回到顶部