Chrome自动播放报错:play() failed because the user didn't interact with the document first解决方法

报错信息

在浏览器中实现语音播报,视频自动播放等场景下,我们可能会遇到以下报错:
Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.

报错原因

这个错误信息表示你尝试在没有用户交互的情况下播放音频,而浏览器的自动播放策略阻止了这一行为。
从Chrome 66开始,浏览器实施了更严格的自动播放策略,要求音频或视频在播放前必须有用户的明确交互(例如点击或触摸事件)。

解决方法

在toB用户确定的场景下,我们可以设置Chrome启动参数,来指定自动播放策略:
--no-user-gesture-required 自动播放策略,不需要任何用户手势

具体步骤:
桌面Chrome快捷方式图标--右键属性--快捷方式栏--目标内容末尾添加参数:
--autoplay-policy=no-user-gesture-required

目标内容完整示例:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --autoplay-policy=no-user-gesture-required

设置完后,重启Chrome浏览器,测试具体场景即可;

Linux删除文件名为乱码的文件

Linux删除文件名为乱码的文件:

1、使用ls -i命令获取文件的节点号;
2、使用find -inum 节点号 -delete命令删除指定节点号的文件;

[test@iZ2zegbfyk4ky0 /data/files]# ls -i
 141817 ????̚??Bc               135875 _?J@???9V0??   135604 demo
 132431 business               137944 ?j?eJ?C@       136454 file
[test@iZ2zegbfyk4ky0 /data/files]# find -inum 141817 -delete
[test@iZ2zegbfyk4ky0 /data/files]#

关于x86、x86_64、x64、amd64和arm64、aarch64的区别

前言

当我们在安装docker或选择docker image镜像时,都需要根据当前服务器的系统和CPU架构来选择对应的软件包或镜像,比如安装docker-compose:

  • docker-compose-linux-aarch64
  • docker-compose-linux-armv6
  • docker-compose-linux-armv7
  • docker-compose-linux-ppc64le
  • docker-compose-linux-riscv64
  • docker-compose-linux-s390x
  • docker-compose-linux-x86_64

或在hub.docker上选择基础镜像时,考虑OS/ARCH:

  • linux/386
  • linux/amd64
  • linux/arm/v6
  • linux/arm64
  • linux/ppc64le
    ...
    等等,那常用的CPU架构都有哪些呢,下面我们就来进一步认识下常用的CPU架构。

不同CPU架构的区别:

CPU架构描述
i38632位AMD/英特尔CPU
x86_64/x86/amd6464位AMD/英特尔 CPU的别称
AArch32/arm/ARMv1到ARMv732位ARM CPU的别称
AArch64/arm64/ARMv8/ARMv964位ARM CPU的别称
rv64gc/rv64g64位RISC-V CPU的别称
ppc64le64位PowerPC CPU(小端字节序存储)

MyBatis多数据库支持databaseId为null问题解决

本文主要讲述MyBatis多数据库支持databaseId为null的问题如何解决,在此之前,我们先来看下Mybatis如何配置支持多数据库。

MyBatis多数据库支持

让一个项目支持不同的数据库在企业开发中是一个比较常见的需求,即一套代码兼容不同的数据库。由于不同的数据库支持的sql语法稍有差别,所以某些功能需要根据数据库的不同书写不同的sql语句。对于这种需求,首先能够想到的解决方案就是针对不同的数据库维护不同的mapper.xml文件,但是这种方案会严重增加开发和维护的成本。因为不同数据库支持的语法大部分都是相同的,不同的毕竟是少数,我们希望只重写不同的部分而重用相同的部分。

针对这种情况,MyBatis提供了解决方案,即databaseIdProvider和databaseId。通过MyBatis提供的这种功能,我们就只需要维护一套mapper.xml文件即可。

查看Linux系统是centos还是ubuntu的方法

前言

本文主要讲述如何查看Linux系统是centos还是ubuntu的4种方法。

常用Linux系统分两大类:
RedHat系列:主要有Redhat、Centos、Fedora等
Debian系列:Debian、Ubuntu等

总结4种区分centos和ubuntu的方法

1、lsb_release -a

使用lsb_release -a命令可以列出你的Linux系统是哪个Linux发行版,还可以列出具体是第几个版本。

2、cat /etc/redhat-release && cat /etc/lsb-release

redhat或centos对应命令:cat /etc/redhat-release
ubuntu对应命令:cat /etc/lsb-release