uni-app Android平台 video组件动态切换src导致闪退
uni-app Android平台 video组件动态切换src导致闪退
仅当前机型存在问题吗?其他机型是否正常?
更多关于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时出现闪退,通常是由于以下几个原因导致的:
- 资源加载问题:
- 确保视频资源路径正确且可访问
- 建议使用绝对路径或网络URL
- 本地视频建议放在static目录下
- 内存管理问题:
- 切换前先销毁旧视频实例
- 使用v-if控制video组件的销毁与重建
- 避免频繁切换src
- 推荐解决方案:
<video v-if="showVideo" :src="currentSrc"></video>
// 切换时先隐藏再显示
this.showVideo = false
this.$nextTick(() => {
this.currentSrc = newSrc
this.showVideo = true
})